X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=xmllint.c;h=b297ded12f57bf0ab578f85ed03718e67da9b433;hb=01021030a4e2b351e9ce5f5af13aaf1c14ba0648;hp=26d8db1c202fd5161cb276e90852481732772c33;hpb=4e8fa1efca3c71ef7e0c515afb175e849a97d416;p=platform%2Fupstream%2Flibxml2.git diff --git a/xmllint.c b/xmllint.c index 26d8db1..b297ded 100644 --- a/xmllint.c +++ b/xmllint.c @@ -1837,8 +1837,12 @@ static void streamFile(char *filename) { if ((fd = open(filename, O_RDONLY)) < 0) return; base = mmap(NULL, info.st_size, PROT_READ, MAP_SHARED, fd, 0) ; - if (base == (void *) MAP_FAILED) + if (base == (void *) MAP_FAILED) { + close(fd); + fprintf(stderr, "mmap failure for file %s\n", filename); + progresult = XMLLINT_ERR_RDFILE; return; + } reader = xmlReaderForMemory(base, info.st_size, filename, NULL, options); @@ -2190,6 +2194,8 @@ static void parseAndPrintFile(char *filename, xmlParserCtxtPtr rectxt) { #if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__) f = fopen(filename, "rb"); +#elif defined(__OS400__) + f = fopen(filename, "rb"); #else f = fopen(filename, "r"); #endif @@ -2202,6 +2208,7 @@ static void parseAndPrintFile(char *filename, xmlParserCtxtPtr rectxt) { if (res > 0) { ctxt = htmlCreatePushParserCtxt(NULL, NULL, chars, res, filename, XML_CHAR_ENCODING_NONE); + xmlCtxtUseOptions(ctxt, options); while ((res = fread(chars, 1, pushsize, f)) > 0) { htmlParseChunk(ctxt, chars, res, 0); } @@ -2223,8 +2230,12 @@ static void parseAndPrintFile(char *filename, xmlParserCtxtPtr rectxt) { if ((fd = open(filename, O_RDONLY)) < 0) return; base = mmap(NULL, info.st_size, PROT_READ, MAP_SHARED, fd, 0) ; - if (base == (void *) MAP_FAILED) + if (base == (void *) MAP_FAILED) { + close(fd); + fprintf(stderr, "mmap failure for file %s\n", filename); + progresult = XMLLINT_ERR_RDFILE; return; + } doc = htmlReadMemory((char *) base, info.st_size, filename, NULL, options); @@ -2251,6 +2262,8 @@ static void parseAndPrintFile(char *filename, xmlParserCtxtPtr rectxt) { } else { #if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__) f = fopen(filename, "rb"); +#elif defined(__OS400__) + f = fopen(filename, "rb"); #else f = fopen(filename, "r"); #endif @@ -2292,6 +2305,8 @@ static void parseAndPrintFile(char *filename, xmlParserCtxtPtr rectxt) { #if defined(_WIN32) || defined (__DJGPP__) && !defined (__CYGWIN__) f = fopen(filename, "rb"); +#elif defined(__OS400__) + f = fopen(filename, "rb"); #else f = fopen(filename, "r"); #endif @@ -2338,8 +2353,12 @@ static void parseAndPrintFile(char *filename, xmlParserCtxtPtr rectxt) { if ((fd = open(filename, O_RDONLY)) < 0) return; base = mmap(NULL, info.st_size, PROT_READ, MAP_SHARED, fd, 0) ; - if (base == (void *) MAP_FAILED) + if (base == (void *) MAP_FAILED) { + close(fd); + fprintf(stderr, "mmap failure for file %s\n", filename); + progresult = XMLLINT_ERR_RDFILE; return; + } if (rectxt == NULL) doc = xmlReadMemory((char *) base, info.st_size, @@ -2561,7 +2580,7 @@ static void parseAndPrintFile(char *filename, xmlParserCtxtPtr rectxt) { fprintf(stderr, "Failed to canonicalize\n"); progresult = XMLLINT_ERR_OUT; } - } else if (canonical) { + } else if (canonical_11) { xmlChar *result = NULL; int size; @@ -2990,7 +3009,7 @@ static void usage(const char *name) { printf("\t--noenc : ignore any encoding specified inside the document\n"); printf("\t--noout : don't output the result tree\n"); printf("\t--path 'paths': provide a set of paths for resources\n"); - printf("\t--load-trace : print trace of all external entites loaded\n"); + printf("\t--load-trace : print trace of all external entities loaded\n"); printf("\t--nonet : refuse to fetch DTDs or entities over network\n"); printf("\t--nocompact : do not generate compact text nodes\n"); printf("\t--htmlout : output results as HTML\n"); @@ -3087,6 +3106,10 @@ static void usage(const char *name) { static void registerNode(xmlNodePtr node) { node->_private = malloc(sizeof(long)); + if (node->_private == NULL) { + fprintf(stderr, "Out of memory in xmllint:registerNode()\n"); + exit(XMLLINT_ERR_MEM); + } *(long*)node->_private = (long) 0x81726354; nbregister++; } @@ -3372,11 +3395,13 @@ main(int argc, char **argv) { (!strcmp(argv[i], "--pretty"))) { i++; #ifdef LIBXML_OUTPUT_ENABLED - format = atoi(argv[i]); - if (format == 1) { - noblanks++; - xmlKeepBlanksDefault(0); - } + if (argv[i] != NULL) { + format = atoi(argv[i]); + if (format == 1) { + noblanks++; + xmlKeepBlanksDefault(0); + } + } #endif /* LIBXML_OUTPUT_ENABLED */ } #ifdef LIBXML_READER_ENABLED