mirror of
https://gitlab.gnome.org/GNOME/libxml2
synced 2025-03-28 21:33:13 +00:00
parent
250faf3c83
commit
db32b09d50
25
xmllint.c
25
xmllint.c
@ -14,6 +14,8 @@
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include <time.h>
|
||||
#include <errno.h>
|
||||
#include <limits.h>
|
||||
|
||||
#ifdef HAVE_SYS_TIME_H
|
||||
#include <sys/time.h>
|
||||
@ -3085,10 +3087,25 @@ main(int argc, char **argv) {
|
||||
|
||||
if ((!strcmp(argv[i], "-maxmem")) ||
|
||||
(!strcmp(argv[i], "--maxmem"))) {
|
||||
i++;
|
||||
if ((i >= argc) || (sscanf(argv[i], "%d", &maxmem) != 1)) {
|
||||
maxmem = 0;
|
||||
}
|
||||
char *val_end;
|
||||
long val;
|
||||
|
||||
i++;
|
||||
if (i >= argc) {
|
||||
fprintf(stderr, "maxmem: missing integer value\n");
|
||||
return(XMLLINT_ERR_UNCLASS);
|
||||
}
|
||||
errno = 0;
|
||||
val = strtol(argv[i], &val_end, 10);
|
||||
if (errno == EINVAL || *val_end != 0) {
|
||||
fprintf(stderr, "maxmem: invalid integer: %s\n", argv[i]);
|
||||
return(XMLLINT_ERR_UNCLASS);
|
||||
}
|
||||
if (errno != 0 || val < 0 || val > INT_MAX) {
|
||||
fprintf(stderr, "maxmem: integer out of range: %s\n", argv[i]);
|
||||
return(XMLLINT_ERR_UNCLASS);
|
||||
}
|
||||
maxmem = val;
|
||||
}
|
||||
}
|
||||
if (maxmem != 0)
|
||||
|
Loading…
x
Reference in New Issue
Block a user