On Fri, May 30, 2008 at 04:01:39PM +0100, Daniel P. Berrange wrote:
This patch switches all remaining code over to use the memory
allocation
APIs, with exception of virsh which is going to be slightly more complex
It was mostly a straight conversion - there were only a few places which
weren't checking for failure corecttly - the most notable being sexpr.c.
[...]
- void *stack, *stacktop;
+ char *stack, *stacktop;
/* allocate a stack for the container */
- stack = malloc(stacksize);
- if (!stack) {
+ if (VIR_ALLOC_N(stack, stacksize) < 0) {
hum, interesting side effect ... we must type stuff with the new macros.
[...]
--- a/src/openvz_driver.c Fri May 30 10:36:42 2008 -0400
+++ b/src/openvz_driver.c Fri May 30 10:55:44 2008 -0400
@@ -49,8 +49,7 @@
#include <stdio.h>
#include <sys/wait.h>
-#include "libvirt/virterror.h"
-
+#include "internal.h"
a bit of cleanup there too.
[...]
-static void
+static int
append(struct sexpr *lst, const struct sexpr *value)
{
okay, the sexpr code really needed to be changed, good !
diff -r ff6b92c70738 src/xen_internal.c
--- a/src/xen_internal.c Fri May 30 10:36:42 2008 -0400
+++ b/src/xen_internal.c Fri May 30 10:55:44 2008 -0400
...
@@ -1659,8 +1659,7 @@
/* The allocated memory to cpumap must be 'sizeof(uint64_t)' byte *
* for Xen, and also nr_cpus must be 'sizeof(uint64_t) * 8' */
if (maplen < 8) {
- new = calloc(1, sizeof(uint64_t));
- if (!new) {
+ if (VIR_ALLOC_N(new, sizeof(uint64_t)) < 0) {
That one worried me, but that works but because we have unsigned char *new
--- a/src/xmlrpc.c Fri May 30 10:36:42 2008 -0400
+++ b/src/xmlrpc.c Fri May 30 10:55:44 2008 -0400
@@ -12,6 +12,7 @@
Hum, i think that's dead code anyway, no ?
#include "xmlrpc.h"
#include "internal.h"
+#include "memory.h"
#include <libxml/nanohttp.h>
@@ -47,9 +48,8 @@
static xmlRpcValuePtr xmlRpcValueNew(xmlRpcValueType type)
{
- xmlRpcValuePtr ret = malloc(sizeof(*ret));
-
- if (!ret)
+ xmlRpcValuePtr ret = NULL;
+ if (VIR_ALLOC(ret) < 0)
I don't think we need to set ret to NULL, do we ? VIR_ALLOC always
initialize.
Okay I think I really read all the patch and tried to check everything :-)
looks good, thanks a lot !
Daniel
--
Red Hat Virtualization group
http://redhat.com/virtualization/
Daniel Veillard | virtualization library
http://libvirt.org/
veillard(a)redhat.com | libxml GNOME XML XSLT toolkit
http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine
http://rpmfind.net/