On Fri, Oct 06, 2006 at 04:44:17AM -0400, Daniel Veillard wrote:
On Thu, Oct 05, 2006 at 07:23:15PM +0100, Daniel P. Berrange wrote:
> diff -u -r1.66 xend_internal.c
> --- src/xend_internal.c 29 Sep 2006 12:00:58 -0000 1.66
> +++ src/xend_internal.c 5 Oct 2006 18:12:33 -0000
> @@ -1499,7 +1499,7 @@
> for (i = 0, j = 0;(i < 32) && (tmp[j] != 0);j++) {
> if (((tmp[j] >= '0') && (tmp[j] <= '9')) ||
> ((tmp[j] >= 'a') && (tmp[j] <= 'f')))
> - compact[i++] = tmp[j];
> + compact[i++] = tmp[j];
maybe we should just add the full set of { } for the innner constructs
too if reformatting.
Will do.
> else if ((tmp[j] >= 'A') && (tmp[j]
<= 'F'))
> compact[i++] = tmp[j] + 'a' - 'A';
> }
> @@ -1546,95 +1546,116 @@
> + drvName = malloc((offset-src)+1);
I agree that if we OOM there it's gonna be messy anyway but let's catch
NULL returns on allocs as much as possible
Don't know what I was thinking. Clearly I should be checking malloc() calls
for failure. Will fix.
> + strncpy(drvName, src, (offset-src));
> + drvName[offset-src] = '\0';
> +
> + src = offset + 1;
> +
> + if (!strcmp(drvName, "tap")) {
> + offset = strchr(src, ':');
> + if (!offset)
> + goto bad_parse;
> +
> + drvType = malloc((offset-src)+1);
Same here. If failing a libvirt error and going to bad_parse should be
sufficient I guess.
Will fix.
> + } else if (!strcmp(offset, ":disk")) {
> + /* defualt anyway */
/* default */ :-)
> + } else if ((drvName == NULL) &&
> + (xmlStrEqual(cur->name, BAD_CAST "driver"))) {
> + drvName = xmlGetProp(cur, BAD_CAST "name");
testing for NULL would be good, if the attribute is missing we should
not crash
Yes, its fine for this to be NULL - i guess I was just lucky that this
next strcmp didn't crash when passed NULL. Will fix.
> + if (!strcmp((const char *)drvName,
"tap"))
> + drvType = xmlGetProp(cur, BAD_CAST "type");
> } else if (xmlStrEqual(cur->name, BAD_CAST "readonly")) {
> ro = 1;
> }
Regards,
Dan.
--
|=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=|
|=- Perl modules:
http://search.cpan.org/~danberr/ -=|
|=- Projects:
http://freshmeat.net/~danielpb/ -=|
|=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=|