Fix for memory leak in sxmlc.c
Nice (sort of ;))! I've applied the patch to create the v4.5.4. Thanks!
Awesome, thanks Damian! It feels really rewarding to see that this small project is actually helping people develop bigger things :) I checked out your xlsx_drone project, it seems to be something I could be working with. I especially love the very few files it needs (I guess you noticed it from sxmlc as well ;)). Also, although sxmlc staerted on SourceForge, it is on GitHub as well, in case it's easier to link to: https://github.com/matthieu-labas/sxmlc Thanks again for letting me know, I hope you...
Thank Damian for the update. The UTF-8 part was extensively tested by "hundreds of (external) tests" (from what I was told) so I should be confident that it should be working fine, but you how bugs like to nest in the most hidden places ;) Happy New Year! :) Matthieu
Thank Damian for the update. The UTF-8 part was extensively tested by "hundredth of (external) tests" (from what I was told) so I should be confident that it should be working fine, but you how bugs like to nest in the most hidden places ;) Happy New Year! :) Matthieu
Hello Damian, The difference when compiling with SXMLC_UNICODE is that the file (if you're parsing files, not buffers) is opened in binary mode (fopen("rb")) and all string functions (strdup(), strlen(), etc.) assume wide char instead of char. So maybe if there are characters that must be stored on more than one byte, it could overflow some buffer. We can consider the following: multi-byte characters are never null (see https://unicodebook.readthedocs.io/unicode_encodings.html) so non-SXMLC_UNICODE...
Empty XML file causing segmentation fault
OK thanks. I changed the macro to check for the i_root validity and retur NULL if < 0. I pushed the changes to v4.3.4.
Empty XML file causing segmentation fault
Hi ElOualid, Thank you for the report. However I can't find such reference in the code. Can you tell me which version you're using and which file and line number you got the error? Thanks! Matthieu
Expose data source context to user
Added in v4.3.3.
OK, I think I get it: the entity reading the XML file is not aware about the XML structure and needs to know the offset and length to read the proper data. I will add your patch in the next version, hopefully this week. Thanks!
OK, I think I get it: the entity reading the XML file is not aware about the XML structure and needs to know the offset and length. I will add your patch in the next version, hopefully this week. Thanks!
Hi Alexander, I'm not sure I understand what is your need. Could you give me an example (if possible) so I can see if there are some other ways around? Thank you for the patch anyway, adding those information might be interesting anyway! Regards, Matthieu
Ease node creation
Done in v4.2.7
error reporting by the parser
Fixed in v4.2.10. Though parser will not report an error on unfinished root tags. At the moment it should be considered a warning: SAX will stop parsing and the caller should check that open nodes were not finished; DOM will just leave nodes as they are (i.e. no new nodes are added to the "unfinished" nodes, though there are no way to know they were not finished).
Buffer overflow issue in read_line_alloc at src/sxmlc.c:1841
Fixed in v4.2.10.
Buffer overflow issue in read_line_alloc at src/sxmlc.c:1841
error reporting by the parser
This is (somehow) expected behaviour: sxmlc was designed to handle multiple root nodes, so both xml1 and xml2 are showing two root nodes. However, one of them is not finished so a warning could be raised. I'll prepare a feature request on that. The error reported in xml3 was expected as I remember I read in some specs that > was legal in XML attribute values. However, I can't find that anymore, but could find several links showing it was illegal. As I want sxmlc to be as permissive as possible (i.e....
Infinite Loop in XMLDoc_parse_buffer_DOM_text_as_nodes()
XMLDoc_parse_file_DOM do not return false after finding ERROR
Behaviour was changed so that 0 is returned on parsing when a SAX callback returns 0.
Buffer overflow in strip_spaces src/sxmlc.c:1916
Will be delivered in v4.2.9.
I can't read the crash2.html. Can you try to attach it again? Or copy-paste it in a comment? Thanks!
Buffer overflow issue in read_line_alloc at src/sxmlc.c:1841
Buffer overflow in strip_spaces src/sxmlc.c:1916
There is indeed a problem in strip_spaces() when the str argument is only spaces (i.e. isspace() returns non-0).
XMLDoc_parse_buffer_DOM bug
v4.2.8 delivered.
(which means I suspect the buffer you're parsing is just enough to contain the whole XML and is not null-terminated. Removing a character somewhere will make room for the null termination and make things work)
Hi Ermanno, The following code I am using works fine: FILE* f = fopen("/tmp/TmRejection.xml", "r"); fseek(f, 0, SEEK_END); long n = ftell(f); fseek(f, 0, SEEK_SET); char* buf = malloc(n+1); fread(buf, 1, n, f); buf[n] = 0; // <<<--- fclose(f); XMLDoc doc; XMLDoc_init(&doc); XMLDoc_parse_buffer_DOM(buf, "simple", &doc); XMLNode* root = XMLDoc_root(&doc); XMLNode_print(root, stdout, NULL, NULL, 0, 0, 0); There is indeed a problem when the buffer is not NULL-terminated (if you remove the line marked...
XMLDoc_parse_buffer_DOM bug
Hi Ermanno, Thank you for your report and the XML file. I will have a look asap. Matthieu
Need to resolve #10 before, to ease buffer allocation.
Print XML to a char buffer.
Print XML to a char buffer.
Tutorial/Examples
Tutorial/Examples
Tutorial/Examples
If you're sending the output to a socket you might be able to use fdopen() (Linux) (or an equivalent for Windows) to transform the socket handle into a FILE*. TCP would be rather seamless, but if the socket is UDP you'll probably be receiving several datagrams corresponding to the internal flush() on FILE*. That said, I'll prepare the XMLDoc_len() function.
Hi Al, That would be an interesting feature to add. I was thinking about using the DataSource type but using setbuf() in cunjunction with an XMLDoc_len() function probably is a better idea. I added a feature request #10.
Compute bytes used for XMLDoc_print() functions
Home
Unicode
How to
Philosophy
Data structures
About
Ease node creation
Limit search depth
feof
fopen & fclose
Good catch, thanks! Though there are no differences on fclose() when it comes to Unicode handling, it should be done for consistency.
4.2.6 SXMLC_VERSION is 4.2.5
Ouch, I always forget this one... I corrected it directly in 4.2.6 (download fixed). I'll try to remember that one if there is a 4.2.7.
@Lucas did you manage to read some things from your Logo8? I have quite the same model and exactly the problems you're describing (connection is fine but timeouts/invalid PDU everywhere else...).
@Michele I know the thread is old but can you give some information if you remember how you managed to run anything? I have the same problem (connection is fine but no data exchange takes place). Maybe the problem comes from the LOGO configuration? I use the "rich-demos/clientdemo" software to validate communication. Grazie!
GCC 4.9 warns about unknown strdup
Thank you. I have applied your patch to v4.2.6. It's already pushed. I'll prepare...
Valgrind Complains about Uninitialized Values
Thank you. I have applied your patch to v4.2.6. It's already pushed. I'll prepare...
Thank you. I have applied your patch to v4.2.6. It's already pushed. I'll prepare...
Infinite Loop in XMLDoc_parse_buffer_DOM_text_as_nodes()
Attribute parsing syntax error
OK, I have issued v4.2.4 which should correct the few problems I noticed, which turned...
OK, I guess I'll use that pattern as a replacement for all realloc() calls. I'm curious...
Interesting. I'm getting the following with v4.2.3: Document start Start node TAG_END...
Interesting. I'm getting the following with v4.2.3: Document start Start node TAG_END...
You forgot some comma , in tag_type_names: after "TAG_DOCTYPE" until the end of the...
You forgot some comma , in tag_type_names: after "TAG_DOCTYPE" until the end of the...
Anyway, I have spotted a problem in attribute value decoding: you should receive...
Attribute parsing syntax error
You forgot some comma , in tag_type_names: after "TAG_DOCTYPE" until the end of the...
Attribute parsing syntax error
Thanks! I'll check that out... Can you tell me what kind of error message you get...
crash fix to XMLSearch_init_from_XPath
Corrected in v4.2.2.
crash fix to XMLSearch_init_from_XPath
I had the same problem last year or so with XMLNode.init_value, where it would sometimes...
'XMLNode_print' takes less parameters (no more ...
*** v4.0.4 - Corrected #end instead of #endif
Correction in documentation.
CHANGELOG update.
*** v4.0.5 - Corrected bug #6: XMLNode_equal wa...
*** v4.0.3 - Updated license to BSD
Initial commit
v3.0.0 with search feature.
v4.0.1 - Corrections/Suggestions given by Pete ...