From: Michael Tremer Date: Sun, 7 Mar 2021 17:33:13 +0000 (+0000) Subject: file: Fix potential memory leaks X-Git-Tag: 0.9.28~1285^2~614 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ffbef232656d9daddcc6b5991005a49707dea54e;p=pakfire.git file: Fix potential memory leaks Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/file.c b/src/libpakfire/file.c index 9c7ca7905..de6dc384c 100644 --- a/src/libpakfire/file.c +++ b/src/libpakfire/file.c @@ -228,7 +228,13 @@ PAKFIRE_EXPORT const char* pakfire_file_get_user(PakfireFile file) { } PAKFIRE_EXPORT void pakfire_file_set_user(PakfireFile file, const char* user) { - file->user = strdup(user); + if (file->user) { + free(file->user); + file->user = NULL; + } + + if (user) + file->user = strdup(user); } PAKFIRE_EXPORT const char* pakfire_file_get_group(PakfireFile file) { @@ -236,7 +242,13 @@ PAKFIRE_EXPORT const char* pakfire_file_get_group(PakfireFile file) { } PAKFIRE_EXPORT void pakfire_file_set_group(PakfireFile file, const char* group) { - file->group = strdup(group); + if (file->group) { + free(file->group); + file->group = NULL; + } + + if (group) + file->group = strdup(group); } PAKFIRE_EXPORT mode_t pakfire_file_get_mode(PakfireFile file) { @@ -260,5 +272,11 @@ PAKFIRE_EXPORT const char* pakfire_file_get_chksum(PakfireFile file) { } PAKFIRE_EXPORT void pakfire_file_set_chksum(PakfireFile file, const char* chksum) { - file->chksum = strdup(chksum); + if (file->chksum) { + free(file->chksum); + file->chksum = NULL; + } + + if (chksum) + file->chksum = strdup(chksum); }