|
From: | Zhaopeng Li |
Subject: | bug#19578: Memory leaks in coreutils/lib/locale_charset.c |
Date: | Tue, 13 Jan 2015 12:06:08 +0800 |
Platform: Ubuntu 14.10 64-bit Coreutils Version 8.23 At line 534 of coreutils/lib/locale_charset.c, var ‘aliases' points to a buffer which is allocated using malloc() . This buffer is not freed when codeset is still an empty string after the loop (Line 534~542). So it will be leaked under such situation. Line 533 /* Resolve alias. */ Line 534 for (aliases = get_charset_aliases (); *aliases != '\0'; aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1) if (strcmp (codeset, aliases) == 0 || (aliases[0] == '*' && aliases[1] == '\0')) { codeset = aliases + strlen (aliases) + 1; break; } /* Don't return an empty string. GNU libc and GNU libiconv interpret the empty string as denoting "the locale's character encoding", thus GNU libiconv would call this function a second time. */ if (codeset[0] == '\0') codeset = "ASCII"; |
[Prev in Thread] | Current Thread | [Next in Thread] |