# HG changeset patch # User Tomasz Golinski # Date 1514638430 -3600 # Node ID be871c22e64cd4fd79901171fd2b99195c1dde6c # Parent 11b11d8531fe566396e9a3584159f5752ffcaeb1 Fix for some small memory leaks diff -r 11b11d8531fe -r be871c22e64c src/ui_fileops.c --- a/src/ui_fileops.c Sat Dec 30 13:46:51 2017 +0100 +++ b/src/ui_fileops.c Sat Dec 30 13:53:50 2017 +0100 @@ -555,9 +555,15 @@ if (lstat_utf8(sl, &st) && S_ISLNK(st.st_mode)) { gchar *link_target; + ssize_t i; - link_target = g_malloc(PATH_MAX + 1); - readlink(sl, link_target, st.st_size); + link_target = g_malloc(st.st_size + 1); + i = readlink(sl, link_target, st.st_size); + if (i<0) + { + g_free(link_target); + goto orig_copy; // try a "normal" copy + } link_target[st.st_size] = '\0'; if (link_target[0] != G_DIR_SEPARATOR) // if it is a relative symlink @@ -582,6 +588,7 @@ } else // could not get absolute path, got some error instead { + g_free(link_target); g_free(absolute); goto orig_copy; // so try a "normal" copy }