diff options
author | Gary Kramlich <grim@reaperworld.com> | 2021-02-07 01:42:09 -0600 |
---|---|---|
committer | Gary Kramlich <grim@reaperworld.com> | 2021-02-07 01:42:09 -0600 |
commit | bb01a2f383df86e9c917f6b755c1369d179ccdef (patch) | |
tree | 7c427fab30ab06365746c37aa1d1daa559ea3881 /libpurple/xmlnode.c | |
parent | b74e34a077b5f15d79ba1f61ca4d353c4f41532d (diff) | |
download | pidgin-bb01a2f383df86e9c917f6b755c1369d179ccdef.tar.gz |
Implement mitigation for GHSL-2021-045
This add a static inline version of `g_memdup2` if the version of glib we're
compiling against doesn't have the function.
GHSL-2021-045 was originally reported to glib at
https://gitlab.gnome.org/GNOME/glib/-/issues/2319.
More information about the entire situation can be found on the gnome
desktop-devel-list at
https://mail.gnome.org/archives/desktop-devel-list/2021-February/msg00000.html
Testing Done:
Compiled and ran unit tests.
Reviewed at https://reviews.imfreedom.org/r/482/
Diffstat (limited to 'libpurple/xmlnode.c')
-rw-r--r-- | libpurple/xmlnode.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/libpurple/xmlnode.c b/libpurple/xmlnode.c index cbaea7a6d7..49f120713b 100644 --- a/libpurple/xmlnode.c +++ b/libpurple/xmlnode.c @@ -36,6 +36,7 @@ #include "purplemarkup.h" #include "util.h" #include "xmlnode.h" +#include "glibcompat.h" #ifdef _WIN32 # define NEWLINE_S "\r\n" @@ -108,7 +109,7 @@ purple_xmlnode_insert_data(PurpleXmlNode *node, const char *data, gssize size) child = new_node(NULL, PURPLE_XMLNODE_TYPE_DATA); - child->data = g_memdup(data, real_size); + child->data = g_memdup2(data, real_size); child->data_sz = real_size; purple_xmlnode_insert_child(node, child); @@ -899,7 +900,7 @@ purple_xmlnode_copy(const PurpleXmlNode *src) ret->xmlns = g_strdup(src->xmlns); if (src->data) { if (src->data_sz) { - ret->data = g_memdup(src->data, src->data_sz); + ret->data = g_memdup2(src->data, src->data_sz); ret->data_sz = src->data_sz; } else { ret->data = g_strdup(src->data); |