diff options
author | defanor <defanor@uberspace.net> | 2023-11-11 23:40:53 +0300 |
---|---|---|
committer | defanor <defanor@uberspace.net> | 2023-11-11 23:40:53 +0300 |
commit | 3e9081921bac3a97f59699ffba34bcc4301ea2c2 (patch) | |
tree | 1eed05cc9bafab03c125a5323d6d923b95f7bc6b /src/rexmpp_xml.c | |
parent | cafe83109a65b6bfd5bc0f3fd642e0833f5ebc78 (diff) |
Check realloc(3) return values
Diffstat (limited to 'src/rexmpp_xml.c')
-rw-r--r-- | src/rexmpp_xml.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/rexmpp_xml.c b/src/rexmpp_xml.c index 9c3dd23..8b106ab 100644 --- a/src/rexmpp_xml.c +++ b/src/rexmpp_xml.c @@ -474,7 +474,12 @@ void rexmpp_xml_parse_sax_characters (struct rexmpp_xml_builder *builder, if (last_node != NULL && last_node->type == REXMPP_XML_TEXT) { /* The last child is textual as well, just extend it */ size_t last_len = strlen(last_node->alt.text); - last_node->alt.text = realloc(last_node->alt.text, last_len + len + 1); + char *new_alt_text = realloc(last_node->alt.text, last_len + len + 1); + if (new_alt_text == NULL) { + /* TODO: Would be nice a report an error here. */ + return; + } + last_node->alt.text = new_alt_text; strncpy(last_node->alt.text + last_len, ch, len); last_node->alt.text[last_len + len] = '\0'; } else { |