pidgin/pidgin

Implement mitigation for GHSL-2021-045
release-2.x.y
2021-02-07, Gary Kramlich
fb2056ce3c58
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 tests locally.

Reviewed at https://reviews.imfreedom.org/r/483/
#include <string.h>
#include "tests.h"
#include "../protocols/oscar/oscar.h"
START_TEST(test_oscar_util_name_compare)
{
size_t i;
const char *good[] = {
"test",
"TEST",
"Test",
"teSt",
" TesT",
"test ",
" T E s T "
};
const char *bad[] = {
"toast",
"test@example.com",
"test@aim.com"
};
for (i = 0; i < G_N_ELEMENTS(good); i++) {
ck_assert_int_eq(0, oscar_util_name_compare("test", good[i]));
ck_assert_int_eq(0, oscar_util_name_compare(good[i], "test"));
}
for (i = 0; i < G_N_ELEMENTS(bad); i++) {
ck_assert_int_ne(0, oscar_util_name_compare("test", bad[i]));
ck_assert_int_ne(0, oscar_util_name_compare(bad[i], "test"));
}
}
END_TEST
Suite *oscar_util_suite(void)
{
Suite *s;
TCase *tc;
s = suite_create("OSCAR Utility Functions");
tc = tcase_create("Convert IM from network format to HTML");
tcase_add_test(tc, test_oscar_util_name_compare);
suite_add_tcase(s, tc);
return s;
}