mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2025-10-24 13:33:01 +03:00
Avoid out-of-bound array access in API tests
The API tests combine string buffers with arbitrary length values which makes ASan detect out-of-bound array accesses. Even without ASan, this could lead to unwanted test failures. Add a check for "len", "size", and "start" arguments, assuming they apply to the nearest char pointer. Skip the test if they exceed the buffer size. This is a somewhat naive heuristic but it seems to work well.
This commit is contained in:
174
testapi.c
174
testapi.c
@@ -1480,6 +1480,9 @@ test_htmlCreateMemoryParserCtxt(void) {
|
||||
mem_base = xmlMemBlocks();
|
||||
buffer = gen_const_char_ptr(n_buffer, 0);
|
||||
size = gen_int(n_size, 1);
|
||||
if ((buffer != NULL) &&
|
||||
(size > (int) strlen((const char *) buffer) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = htmlCreateMemoryParserCtxt((const char *)buffer, size);
|
||||
desret_htmlParserCtxtPtr(ret_val);
|
||||
@@ -1547,6 +1550,9 @@ test_htmlCreatePushParserCtxt(void) {
|
||||
size = gen_int(n_size, 3);
|
||||
filename = gen_fileoutput(n_filename, 4);
|
||||
enc = gen_xmlCharEncoding(n_enc, 5);
|
||||
if ((chunk != NULL) &&
|
||||
(size > (int) strlen((const char *) chunk) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = htmlCreatePushParserCtxt(sax, user_data, (const char *)chunk, size, filename, enc);
|
||||
desret_htmlParserCtxtPtr(ret_val);
|
||||
@@ -1721,6 +1727,9 @@ test_htmlCtxtReadMemory(void) {
|
||||
URL = gen_filepath(n_URL, 3);
|
||||
encoding = gen_const_char_ptr(n_encoding, 4);
|
||||
options = gen_int(n_options, 5);
|
||||
if ((buffer != NULL) &&
|
||||
(size > (int) strlen((const char *) buffer) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = htmlCtxtReadMemory(ctxt, (const char *)buffer, size, URL, (const char *)encoding, options);
|
||||
desret_htmlDocPtr(ret_val);
|
||||
@@ -2278,6 +2287,9 @@ test_htmlParseChunk(void) {
|
||||
chunk = gen_const_char_ptr(n_chunk, 1);
|
||||
size = gen_int(n_size, 2);
|
||||
terminate = gen_int(n_terminate, 3);
|
||||
if ((chunk != NULL) &&
|
||||
(size > (int) strlen((const char *) chunk) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = htmlParseChunk(ctxt, (const char *)chunk, size, terminate);
|
||||
if (ctxt != NULL) {xmlFreeDoc(ctxt->myDoc); ctxt->myDoc = NULL;}
|
||||
@@ -2621,6 +2633,9 @@ test_htmlReadMemory(void) {
|
||||
URL = gen_filepath(n_URL, 2);
|
||||
encoding = gen_const_char_ptr(n_encoding, 3);
|
||||
options = gen_int(n_options, 4);
|
||||
if ((buffer != NULL) &&
|
||||
(size > (int) strlen((const char *) buffer) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = htmlReadMemory((const char *)buffer, size, URL, (const char *)encoding, options);
|
||||
desret_htmlDocPtr(ret_val);
|
||||
@@ -3870,6 +3885,9 @@ test_xmlSAX2CDataBlock(void) {
|
||||
ctx = gen_void_ptr(n_ctx, 0);
|
||||
value = gen_const_xmlChar_ptr(n_value, 1);
|
||||
len = gen_int(n_len, 2);
|
||||
if ((value != NULL) &&
|
||||
(len > (int) strlen((const char *) value) + 1))
|
||||
continue;
|
||||
|
||||
xmlSAX2CDataBlock(ctx, (const xmlChar *)value, len);
|
||||
call_tests++;
|
||||
@@ -3914,6 +3932,9 @@ test_xmlSAX2Characters(void) {
|
||||
ctx = gen_void_ptr(n_ctx, 0);
|
||||
ch = gen_const_xmlChar_ptr(n_ch, 1);
|
||||
len = gen_int(n_len, 2);
|
||||
if ((ch != NULL) &&
|
||||
(len > (int) strlen((const char *) ch) + 1))
|
||||
continue;
|
||||
|
||||
xmlSAX2Characters(ctx, (const xmlChar *)ch, len);
|
||||
call_tests++;
|
||||
@@ -4554,6 +4575,9 @@ test_xmlSAX2IgnorableWhitespace(void) {
|
||||
ctx = gen_void_ptr(n_ctx, 0);
|
||||
ch = gen_const_xmlChar_ptr(n_ch, 1);
|
||||
len = gen_int(n_len, 2);
|
||||
if ((ch != NULL) &&
|
||||
(len > (int) strlen((const char *) ch) + 1))
|
||||
continue;
|
||||
|
||||
xmlSAX2IgnorableWhitespace(ctx, (const xmlChar *)ch, len);
|
||||
call_tests++;
|
||||
@@ -8221,6 +8245,9 @@ test_xmlDictExists(void) {
|
||||
dict = gen_xmlDictPtr(n_dict, 0);
|
||||
name = gen_const_xmlChar_ptr(n_name, 1);
|
||||
len = gen_int(n_len, 2);
|
||||
if ((name != NULL) &&
|
||||
(len > (int) strlen((const char *) name) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlDictExists(dict, (const xmlChar *)name, len);
|
||||
desret_const_xmlChar_ptr(ret_val);
|
||||
@@ -8277,6 +8304,9 @@ test_xmlDictLookup(void) {
|
||||
dict = gen_xmlDictPtr(n_dict, 0);
|
||||
name = gen_const_xmlChar_ptr(n_name, 1);
|
||||
len = gen_int(n_len, 2);
|
||||
if ((name != NULL) &&
|
||||
(len > (int) strlen((const char *) name) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlDictLookup(dict, (const xmlChar *)name, len);
|
||||
desret_const_xmlChar_ptr(ret_val);
|
||||
@@ -12727,6 +12757,9 @@ test_xmlCreatePushParserCtxt(void) {
|
||||
chunk = gen_const_char_ptr(n_chunk, 2);
|
||||
size = gen_int(n_size, 3);
|
||||
filename = gen_fileoutput(n_filename, 4);
|
||||
if ((chunk != NULL) &&
|
||||
(size > (int) strlen((const char *) chunk) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlCreatePushParserCtxt(sax, user_data, (const char *)chunk, size, filename);
|
||||
desret_xmlParserCtxtPtr(ret_val);
|
||||
@@ -12905,6 +12938,9 @@ test_xmlCtxtReadMemory(void) {
|
||||
URL = gen_filepath(n_URL, 3);
|
||||
encoding = gen_const_char_ptr(n_encoding, 4);
|
||||
options = gen_parseroptions(n_options, 5);
|
||||
if ((buffer != NULL) &&
|
||||
(size > (int) strlen((const char *) buffer) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlCtxtReadMemory(ctxt, (const char *)buffer, size, URL, (const char *)encoding, options);
|
||||
desret_xmlDocPtr(ret_val);
|
||||
@@ -12998,6 +13034,9 @@ test_xmlCtxtResetPush(void) {
|
||||
size = gen_int(n_size, 2);
|
||||
filename = gen_filepath(n_filename, 3);
|
||||
encoding = gen_const_char_ptr(n_encoding, 4);
|
||||
if ((chunk != NULL) &&
|
||||
(size > (int) strlen((const char *) chunk) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlCtxtResetPush(ctxt, (const char *)chunk, size, filename, (const char *)encoding);
|
||||
desret_int(ret_val);
|
||||
@@ -13709,6 +13748,9 @@ test_xmlParseChunk(void) {
|
||||
chunk = gen_const_char_ptr(n_chunk, 1);
|
||||
size = gen_int(n_size, 2);
|
||||
terminate = gen_int(n_terminate, 3);
|
||||
if ((chunk != NULL) &&
|
||||
(size > (int) strlen((const char *) chunk) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlParseChunk(ctxt, (const char *)chunk, size, terminate);
|
||||
if (ctxt != NULL) {xmlFreeDoc(ctxt->myDoc); ctxt->myDoc = NULL;}
|
||||
@@ -14166,6 +14208,9 @@ test_xmlParseMemory(void) {
|
||||
mem_base = xmlMemBlocks();
|
||||
buffer = gen_const_char_ptr(n_buffer, 0);
|
||||
size = gen_int(n_size, 1);
|
||||
if ((buffer != NULL) &&
|
||||
(size > (int) strlen((const char *) buffer) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlParseMemory((const char *)buffer, size);
|
||||
desret_xmlDocPtr(ret_val);
|
||||
@@ -14578,6 +14623,9 @@ test_xmlReadMemory(void) {
|
||||
URL = gen_filepath(n_URL, 2);
|
||||
encoding = gen_const_char_ptr(n_encoding, 3);
|
||||
options = gen_parseroptions(n_options, 4);
|
||||
if ((buffer != NULL) &&
|
||||
(size > (int) strlen((const char *) buffer) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlReadMemory((const char *)buffer, size, URL, (const char *)encoding, options);
|
||||
desret_xmlDocPtr(ret_val);
|
||||
@@ -14700,6 +14748,9 @@ test_xmlRecoverMemory(void) {
|
||||
mem_base = xmlMemBlocks();
|
||||
buffer = gen_const_char_ptr(n_buffer, 0);
|
||||
size = gen_int(n_size, 1);
|
||||
if ((buffer != NULL) &&
|
||||
(size > (int) strlen((const char *) buffer) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlRecoverMemory((const char *)buffer, size);
|
||||
desret_xmlDocPtr(ret_val);
|
||||
@@ -15001,6 +15052,9 @@ test_xmlSAXParseMemory(void) {
|
||||
buffer = gen_const_char_ptr(n_buffer, 1);
|
||||
size = gen_int(n_size, 2);
|
||||
recovery = gen_int(n_recovery, 3);
|
||||
if ((buffer != NULL) &&
|
||||
(size > (int) strlen((const char *) buffer) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlSAXParseMemory(sax, (const char *)buffer, size, recovery);
|
||||
desret_xmlDocPtr(ret_val);
|
||||
@@ -15062,6 +15116,9 @@ test_xmlSAXParseMemoryWithData(void) {
|
||||
size = gen_int(n_size, 2);
|
||||
recovery = gen_int(n_recovery, 3);
|
||||
data = gen_userdata(n_data, 4);
|
||||
if ((buffer != NULL) &&
|
||||
(size > (int) strlen((const char *) buffer) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlSAXParseMemoryWithData(sax, (const char *)buffer, size, recovery, data);
|
||||
desret_xmlDocPtr(ret_val);
|
||||
@@ -15177,6 +15234,9 @@ test_xmlSAXUserParseMemory(void) {
|
||||
user_data = gen_userdata(n_user_data, 1);
|
||||
buffer = gen_const_char_ptr(n_buffer, 2);
|
||||
size = gen_int(n_size, 3);
|
||||
if ((buffer != NULL) &&
|
||||
(size > (int) strlen((const char *) buffer) + 1))
|
||||
continue;
|
||||
|
||||
#ifdef LIBXML_SAX1_ENABLED
|
||||
if (sax == (xmlSAXHandlerPtr)&xmlDefaultSAXHandler) user_data = NULL;
|
||||
@@ -15948,6 +16008,9 @@ test_xmlCreateMemoryParserCtxt(void) {
|
||||
mem_base = xmlMemBlocks();
|
||||
buffer = gen_const_char_ptr(n_buffer, 0);
|
||||
size = gen_int(n_size, 1);
|
||||
if ((buffer != NULL) &&
|
||||
(size > (int) strlen((const char *) buffer) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlCreateMemoryParserCtxt((const char *)buffer, size);
|
||||
desret_xmlParserCtxtPtr(ret_val);
|
||||
@@ -16603,6 +16666,9 @@ test_xmlStringLenDecodeEntities(void) {
|
||||
end = gen_xmlChar(n_end, 4);
|
||||
end2 = gen_xmlChar(n_end2, 5);
|
||||
end3 = gen_xmlChar(n_end3, 6);
|
||||
if ((str != NULL) &&
|
||||
(len > (int) strlen((const char *) str) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlStringLenDecodeEntities(ctxt, (const xmlChar *)str, len, what, end, end2, end3);
|
||||
desret_xmlChar_ptr(ret_val);
|
||||
@@ -17573,6 +17639,9 @@ test_xmlRelaxNGNewMemParserCtxt(void) {
|
||||
mem_base = xmlMemBlocks();
|
||||
buffer = gen_const_char_ptr(n_buffer, 0);
|
||||
size = gen_int(n_size, 1);
|
||||
if ((buffer != NULL) &&
|
||||
(size > (int) strlen((const char *) buffer) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlRelaxNGNewMemParserCtxt((const char *)buffer, size);
|
||||
desret_xmlRelaxNGParserCtxtPtr(ret_val);
|
||||
@@ -17849,6 +17918,9 @@ test_xmlRelaxNGValidatePushCData(void) {
|
||||
ctxt = gen_xmlRelaxNGValidCtxtPtr(n_ctxt, 0);
|
||||
data = gen_const_xmlChar_ptr(n_data, 1);
|
||||
len = gen_int(n_len, 2);
|
||||
if ((data != NULL) &&
|
||||
(len > (int) strlen((const char *) data) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlRelaxNGValidatePushCData(ctxt, (const xmlChar *)data, len);
|
||||
desret_int(ret_val);
|
||||
@@ -18591,6 +18663,9 @@ test_xmlBufferAdd(void) {
|
||||
buf = gen_xmlBufferPtr(n_buf, 0);
|
||||
str = gen_const_xmlChar_ptr(n_str, 1);
|
||||
len = gen_int(n_len, 2);
|
||||
if ((str != NULL) &&
|
||||
(len > (int) strlen((const char *) str) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlBufferAdd(buf, (const xmlChar *)str, len);
|
||||
desret_int(ret_val);
|
||||
@@ -18637,6 +18712,9 @@ test_xmlBufferAddHead(void) {
|
||||
buf = gen_xmlBufferPtr(n_buf, 0);
|
||||
str = gen_const_xmlChar_ptr(n_str, 1);
|
||||
len = gen_int(n_len, 2);
|
||||
if ((str != NULL) &&
|
||||
(len > (int) strlen((const char *) str) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlBufferAddHead(buf, (const xmlChar *)str, len);
|
||||
desret_int(ret_val);
|
||||
@@ -19209,6 +19287,9 @@ test_xmlBuildQName(void) {
|
||||
prefix = gen_const_xmlChar_ptr(n_prefix, 1);
|
||||
memory = gen_xmlChar_ptr(n_memory, 2);
|
||||
len = gen_int(n_len, 3);
|
||||
if ((prefix != NULL) &&
|
||||
(len > (int) strlen((const char *) prefix) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlBuildQName((const xmlChar *)ncname, (const xmlChar *)prefix, memory, len);
|
||||
if ((ret_val != NULL) && (ret_val != ncname) &&
|
||||
@@ -20980,6 +21061,9 @@ test_xmlNewCDataBlock(void) {
|
||||
doc = gen_xmlDocPtr(n_doc, 0);
|
||||
content = gen_const_xmlChar_ptr(n_content, 1);
|
||||
len = gen_int(n_len, 2);
|
||||
if ((content != NULL) &&
|
||||
(len > (int) strlen((const char *) content) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlNewCDataBlock(doc, (const xmlChar *)content, len);
|
||||
desret_xmlNodePtr(ret_val);
|
||||
@@ -21553,6 +21637,9 @@ test_xmlNewDocTextLen(void) {
|
||||
doc = gen_xmlDocPtr(n_doc, 0);
|
||||
content = gen_const_xmlChar_ptr(n_content, 1);
|
||||
len = gen_int(n_len, 2);
|
||||
if ((content != NULL) &&
|
||||
(len > (int) strlen((const char *) content) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlNewDocTextLen(doc, (const xmlChar *)content, len);
|
||||
desret_xmlNodePtr(ret_val);
|
||||
@@ -22096,6 +22183,9 @@ test_xmlNewTextLen(void) {
|
||||
mem_base = xmlMemBlocks();
|
||||
content = gen_const_xmlChar_ptr(n_content, 0);
|
||||
len = gen_int(n_len, 1);
|
||||
if ((content != NULL) &&
|
||||
(len > (int) strlen((const char *) content) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlNewTextLen((const xmlChar *)content, len);
|
||||
desret_xmlNodePtr(ret_val);
|
||||
@@ -22209,6 +22299,9 @@ test_xmlNodeAddContentLen(void) {
|
||||
cur = gen_xmlNodePtr(n_cur, 0);
|
||||
content = gen_const_xmlChar_ptr(n_content, 1);
|
||||
len = gen_int(n_len, 2);
|
||||
if ((content != NULL) &&
|
||||
(len > (int) strlen((const char *) content) + 1))
|
||||
continue;
|
||||
|
||||
xmlNodeAddContentLen(cur, (const xmlChar *)content, len);
|
||||
call_tests++;
|
||||
@@ -22759,6 +22852,9 @@ test_xmlNodeSetContentLen(void) {
|
||||
cur = gen_xmlNodePtr(n_cur, 0);
|
||||
content = gen_const_xmlChar_ptr(n_content, 1);
|
||||
len = gen_int(n_len, 2);
|
||||
if ((content != NULL) &&
|
||||
(len > (int) strlen((const char *) content) + 1))
|
||||
continue;
|
||||
|
||||
xmlNodeSetContentLen(cur, (const xmlChar *)content, len);
|
||||
call_tests++;
|
||||
@@ -23823,6 +23919,9 @@ test_xmlStringLenGetNodeList(void) {
|
||||
doc = gen_const_xmlDoc_ptr(n_doc, 0);
|
||||
value = gen_const_xmlChar_ptr(n_value, 1);
|
||||
len = gen_int(n_len, 2);
|
||||
if ((value != NULL) &&
|
||||
(len > (int) strlen((const char *) value) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlStringLenGetNodeList((const xmlDoc *)doc, (const xmlChar *)value, len);
|
||||
desret_xmlNodePtr(ret_val);
|
||||
@@ -23869,6 +23968,9 @@ test_xmlTextConcat(void) {
|
||||
node = gen_xmlNodePtr(n_node, 0);
|
||||
content = gen_const_xmlChar_ptr(n_content, 1);
|
||||
len = gen_int(n_len, 2);
|
||||
if ((content != NULL) &&
|
||||
(len > (int) strlen((const char *) content) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlTextConcat(node, (const xmlChar *)content, len);
|
||||
desret_int(ret_val);
|
||||
@@ -27125,6 +27227,9 @@ test_xmlValidatePushCData(void) {
|
||||
ctxt = gen_xmlValidCtxtPtr(n_ctxt, 0);
|
||||
data = gen_const_xmlChar_ptr(n_data, 1);
|
||||
len = gen_int(n_len, 2);
|
||||
if ((data != NULL) &&
|
||||
(len > (int) strlen((const char *) data) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlValidatePushCData(ctxt, (const xmlChar *)data, len);
|
||||
desret_int(ret_val);
|
||||
@@ -28661,6 +28766,9 @@ test_xmlOutputBufferWrite(void) {
|
||||
out = gen_xmlOutputBufferPtr(n_out, 0);
|
||||
len = gen_int(n_len, 1);
|
||||
buf = gen_const_char_ptr(n_buf, 2);
|
||||
if ((buf != NULL) &&
|
||||
(len > (int) strlen((const char *) buf) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlOutputBufferWrite(out, len, (const char *)buf);
|
||||
desret_int(ret_val);
|
||||
@@ -28887,6 +28995,9 @@ test_xmlParserInputBufferCreateMem(void) {
|
||||
mem = gen_const_char_ptr(n_mem, 0);
|
||||
size = gen_int(n_size, 1);
|
||||
enc = gen_xmlCharEncoding(n_enc, 2);
|
||||
if ((mem != NULL) &&
|
||||
(size > (int) strlen((const char *) mem) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlParserInputBufferCreateMem((const char *)mem, size, enc);
|
||||
desret_xmlParserInputBufferPtr(ret_val);
|
||||
@@ -28933,6 +29044,9 @@ test_xmlParserInputBufferCreateStatic(void) {
|
||||
mem = gen_const_char_ptr(n_mem, 0);
|
||||
size = gen_int(n_size, 1);
|
||||
enc = gen_xmlCharEncoding(n_enc, 2);
|
||||
if ((mem != NULL) &&
|
||||
(size > (int) strlen((const char *) mem) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlParserInputBufferCreateStatic((const char *)mem, size, enc);
|
||||
desret_xmlParserInputBufferPtr(ret_val);
|
||||
@@ -29018,6 +29132,9 @@ test_xmlParserInputBufferPush(void) {
|
||||
in = gen_xmlParserInputBufferPtr(n_in, 0);
|
||||
len = gen_int(n_len, 1);
|
||||
buf = gen_const_char_ptr(n_buf, 2);
|
||||
if ((buf != NULL) &&
|
||||
(len > (int) strlen((const char *) buf) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlParserInputBufferPush(in, len, (const char *)buf);
|
||||
desret_int(ret_val);
|
||||
@@ -30200,6 +30317,9 @@ test_xmlReaderForMemory(void) {
|
||||
URL = gen_filepath(n_URL, 2);
|
||||
encoding = gen_const_char_ptr(n_encoding, 3);
|
||||
options = gen_parseroptions(n_options, 4);
|
||||
if ((buffer != NULL) &&
|
||||
(size > (int) strlen((const char *) buffer) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlReaderForMemory((const char *)buffer, size, URL, (const char *)encoding, options);
|
||||
desret_xmlTextReaderPtr(ret_val);
|
||||
@@ -30383,6 +30503,9 @@ test_xmlReaderNewMemory(void) {
|
||||
URL = gen_filepath(n_URL, 3);
|
||||
encoding = gen_const_char_ptr(n_encoding, 4);
|
||||
options = gen_parseroptions(n_options, 5);
|
||||
if ((buffer != NULL) &&
|
||||
(size > (int) strlen((const char *) buffer) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlReaderNewMemory(reader, (const char *)buffer, size, URL, (const char *)encoding, options);
|
||||
desret_int(ret_val);
|
||||
@@ -34420,6 +34543,9 @@ test_xmlSchemaNewMemParserCtxt(void) {
|
||||
mem_base = xmlMemBlocks();
|
||||
buffer = gen_const_char_ptr(n_buffer, 0);
|
||||
size = gen_int(n_size, 1);
|
||||
if ((buffer != NULL) &&
|
||||
(size > (int) strlen((const char *) buffer) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlSchemaNewMemParserCtxt((const char *)buffer, size);
|
||||
desret_xmlSchemaParserCtxtPtr(ret_val);
|
||||
@@ -36304,6 +36430,9 @@ test_xmlCharStrndup(void) {
|
||||
mem_base = xmlMemBlocks();
|
||||
cur = gen_const_char_ptr(n_cur, 0);
|
||||
len = gen_int(n_len, 1);
|
||||
if ((cur != NULL) &&
|
||||
(len > (int) strlen((const char *) cur) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlCharStrndup((const char *)cur, len);
|
||||
desret_xmlChar_ptr(ret_val);
|
||||
@@ -36743,6 +36872,9 @@ test_xmlStrncasecmp(void) {
|
||||
str1 = gen_const_xmlChar_ptr(n_str1, 0);
|
||||
str2 = gen_const_xmlChar_ptr(n_str2, 1);
|
||||
len = gen_int(n_len, 2);
|
||||
if ((str2 != NULL) &&
|
||||
(len > (int) strlen((const char *) str2) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlStrncasecmp((const xmlChar *)str1, (const xmlChar *)str2, len);
|
||||
desret_int(ret_val);
|
||||
@@ -36789,6 +36921,9 @@ test_xmlStrncatNew(void) {
|
||||
str1 = gen_const_xmlChar_ptr(n_str1, 0);
|
||||
str2 = gen_const_xmlChar_ptr(n_str2, 1);
|
||||
len = gen_int(n_len, 2);
|
||||
if ((str2 != NULL) &&
|
||||
(len > (int) strlen((const char *) str2) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlStrncatNew((const xmlChar *)str1, (const xmlChar *)str2, len);
|
||||
desret_xmlChar_ptr(ret_val);
|
||||
@@ -36835,6 +36970,9 @@ test_xmlStrncmp(void) {
|
||||
str1 = gen_const_xmlChar_ptr(n_str1, 0);
|
||||
str2 = gen_const_xmlChar_ptr(n_str2, 1);
|
||||
len = gen_int(n_len, 2);
|
||||
if ((str2 != NULL) &&
|
||||
(len > (int) strlen((const char *) str2) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlStrncmp((const xmlChar *)str1, (const xmlChar *)str2, len);
|
||||
desret_int(ret_val);
|
||||
@@ -36877,6 +37015,9 @@ test_xmlStrndup(void) {
|
||||
mem_base = xmlMemBlocks();
|
||||
cur = gen_const_xmlChar_ptr(n_cur, 0);
|
||||
len = gen_int(n_len, 1);
|
||||
if ((cur != NULL) &&
|
||||
(len > (int) strlen((const char *) cur) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlStrndup((const xmlChar *)cur, len);
|
||||
desret_xmlChar_ptr(ret_val);
|
||||
@@ -36959,6 +37100,12 @@ test_xmlStrsub(void) {
|
||||
str = gen_const_xmlChar_ptr(n_str, 0);
|
||||
start = gen_int(n_start, 1);
|
||||
len = gen_int(n_len, 2);
|
||||
if ((str != NULL) &&
|
||||
(start > (int) strlen((const char *) str) + 1))
|
||||
continue;
|
||||
if ((str != NULL) &&
|
||||
(len > (int) strlen((const char *) str) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlStrsub((const xmlChar *)str, start, len);
|
||||
desret_xmlChar_ptr(ret_val);
|
||||
@@ -37143,6 +37290,9 @@ test_xmlUTF8Strndup(void) {
|
||||
mem_base = xmlMemBlocks();
|
||||
utf = gen_const_xmlChar_ptr(n_utf, 0);
|
||||
len = gen_int(n_len, 1);
|
||||
if ((utf != NULL) &&
|
||||
(len > (int) strlen((const char *) utf) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlUTF8Strndup((const xmlChar *)utf, len);
|
||||
desret_xmlChar_ptr(ret_val);
|
||||
@@ -37221,6 +37371,9 @@ test_xmlUTF8Strsize(void) {
|
||||
mem_base = xmlMemBlocks();
|
||||
utf = gen_const_xmlChar_ptr(n_utf, 0);
|
||||
len = gen_int(n_len, 1);
|
||||
if ((utf != NULL) &&
|
||||
(len > (int) strlen((const char *) utf) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlUTF8Strsize((const xmlChar *)utf, len);
|
||||
desret_int(ret_val);
|
||||
@@ -37264,6 +37417,12 @@ test_xmlUTF8Strsub(void) {
|
||||
utf = gen_const_xmlChar_ptr(n_utf, 0);
|
||||
start = gen_int(n_start, 1);
|
||||
len = gen_int(n_len, 2);
|
||||
if ((utf != NULL) &&
|
||||
(start > (int) strlen((const char *) utf) + 1))
|
||||
continue;
|
||||
if ((utf != NULL) &&
|
||||
(len > (int) strlen((const char *) utf) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlUTF8Strsub((const xmlChar *)utf, start, len);
|
||||
desret_xmlChar_ptr(ret_val);
|
||||
@@ -44576,6 +44735,12 @@ test_xmlTextWriterWriteBase64(void) {
|
||||
data = gen_const_char_ptr(n_data, 1);
|
||||
start = gen_int(n_start, 2);
|
||||
len = gen_int(n_len, 3);
|
||||
if ((data != NULL) &&
|
||||
(start > (int) strlen((const char *) data) + 1))
|
||||
continue;
|
||||
if ((data != NULL) &&
|
||||
(len > (int) strlen((const char *) data) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlTextWriterWriteBase64(writer, (const char *)data, start, len);
|
||||
desret_int(ret_val);
|
||||
@@ -44631,6 +44796,12 @@ test_xmlTextWriterWriteBinHex(void) {
|
||||
data = gen_const_char_ptr(n_data, 1);
|
||||
start = gen_int(n_start, 2);
|
||||
len = gen_int(n_len, 3);
|
||||
if ((data != NULL) &&
|
||||
(start > (int) strlen((const char *) data) + 1))
|
||||
continue;
|
||||
if ((data != NULL) &&
|
||||
(len > (int) strlen((const char *) data) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlTextWriterWriteBinHex(writer, (const char *)data, start, len);
|
||||
desret_int(ret_val);
|
||||
@@ -45561,6 +45732,9 @@ test_xmlTextWriterWriteRawLen(void) {
|
||||
writer = gen_xmlTextWriterPtr(n_writer, 0);
|
||||
content = gen_const_xmlChar_ptr(n_content, 1);
|
||||
len = gen_int(n_len, 2);
|
||||
if ((content != NULL) &&
|
||||
(len > (int) strlen((const char *) content) + 1))
|
||||
continue;
|
||||
|
||||
ret_val = xmlTextWriterWriteRawLen(writer, (const xmlChar *)content, len);
|
||||
desret_int(ret_val);
|
||||
|
||||
Reference in New Issue
Block a user