Use strtoumax() instead of strtoul() for id/ref attr in XML elements.

This improves compatibility when running an ILP32 binary on LP64 kernel.

Spotted by:	gjb
This commit is contained in:
hrs 2013-07-12 02:36:00 +00:00
parent 1a38eadae7
commit 7b04a1affb

View File

@ -75,10 +75,10 @@ StartElement(void *userData, const char *name, const char **attr)
ref = NULL; ref = NULL;
for (i = 0; attr[i] != NULL; i += 2) { for (i = 0; attr[i] != NULL; i += 2) {
if (!strcmp(attr[i], "id")) { if (!strcmp(attr[i], "id")) {
id = (void *)strtoul(attr[i + 1], NULL, 0); id = (void *)strtoumax(attr[i + 1], NULL, 0);
mt->nident++; mt->nident++;
} else if (!strcmp(attr[i], "ref")) { } else if (!strcmp(attr[i], "ref")) {
ref = (void *)strtoul(attr[i + 1], NULL, 0); ref = (void *)strtoumax(attr[i + 1], NULL, 0);
} else } else
printf("%*.*s[%s = %s]\n", printf("%*.*s[%s = %s]\n",
mt->level + 1, mt->level + 1, "", mt->level + 1, mt->level + 1, "",