From unknown Sat Aug 09 13:19:55 2025 X-Loop: help-debbugs@gnu.org Subject: bug#19580: Memory Leak in coreutils/lib/localcharset.c Resent-From: Zhaopeng Li Original-Sender: "Debbugs-submit" Resent-CC: bug-coreutils@gnu.org Resent-Date: Tue, 13 Jan 2015 10:32:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 19580 X-GNU-PR-Package: coreutils X-GNU-PR-Keywords: To: 19580@debbugs.gnu.org X-Debbugs-Original-To: bug-coreutils@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.142114511332698 (code B ref -1); Tue, 13 Jan 2015 10:32:01 +0000 Received: (at submit) by debbugs.gnu.org; 13 Jan 2015 10:31:53 +0000 Received: from localhost ([127.0.0.1]:54991 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YAylM-0008VJ-Gw for submit@debbugs.gnu.org; Tue, 13 Jan 2015 05:31:53 -0500 Received: from eggs.gnu.org ([208.118.235.92]:57718) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YAylI-0008V4-Ig for submit@debbugs.gnu.org; Tue, 13 Jan 2015 05:31:50 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YAylB-00031s-Km for submit@debbugs.gnu.org; Tue, 13 Jan 2015 05:31:43 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,HTML_MESSAGE autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:36605) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YAylB-00031m-HC for submit@debbugs.gnu.org; Tue, 13 Jan 2015 05:31:41 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59429) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YAyl9-0003Dk-QE for bug-coreutils@gnu.org; Tue, 13 Jan 2015 05:31:41 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YAyl5-0002zh-Mr for bug-coreutils@gnu.org; Tue, 13 Jan 2015 05:31:39 -0500 Received: from email6.ustc.edu.cn ([2001:da8:d800::8]:40336 helo=ustc.edu.cn) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YAyl4-0002xz-MJ for bug-coreutils@gnu.org; Tue, 13 Jan 2015 05:31:35 -0500 Received: from [10.10.0.21] (unknown [116.251.221.242]) by newmailweb.ustc.edu.cn (Coremail) with SMTP id LkAmygBnbwP287RUwvxwAg--.60903S3; Tue, 13 Jan 2015 18:31:21 +0800 (CST) From: Zhaopeng Li Content-Type: multipart/alternative; boundary="Apple-Mail=_74E2F458-9781-4B12-8776-ED6B0CEE5962" Message-Id: <37746A77-739A-4763-A5F3-DD6ECA6DBB77@ustc.edu.cn> Date: Tue, 13 Jan 2015 18:31:18 +0800 Mime-Version: 1.0 (Mac OS X Mail 8.1 \(1993\)) X-Mailer: Apple Mail (2.1993) X-CM-TRANSID: LkAmygBnbwP287RUwvxwAg--.60903S3 X-Coremail-Antispam: 1UD129KBjvdXoW7XF45GrWfCr1DGF1fXF4ruFg_yoWkurbEyr sxtrWkJw4DZw4kGFsxtr4FgrySqFs8CF4fCr9FyrW0yayjqrWjvFn2vF13Ww4rGrW2k3y7 J3yYyay7ur1UGjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUIcSsGvfJTRUUUbF8YjsxI4VWkCwAYFVCjjxCrM7AC8VAFwI0_Jr0_Gr1l1xkIjI8I 6I8E6xAIw20EY4v20xvaj40_Wr0E3s1l1IIY67AEw4v_Jr0_Jr4l8cAvFVAK0II2c7xJM2 8CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2IY67AKxVW7JVWDJwA2z4x0Y4vE2Ix0 cI8IcVCY1x0267AKxVWxJVW8Jr1l84ACjcxK6I8E87Iv67AKxVW0oVCq3wA2z4x0Y4vEx4 A2jsIEc7CjxVAFwI0_GcCE3s1le2I262IYc4CY6c8Ij28IcVAaY2xG8wAv7VC0I7IYx2IY 67AKxVWUGVWUXwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r4UM4x0Y4 8IcxkI7VAKI48JMx8GjcxK6IxK0xIIj40E5I8CrwCF04k20xvY0x0EwIxGrwCFx2IqxVCF s4IE7xkEbVWUJVW8JwC20s026c02F40E14v26r106r1rMI8I3I0E7480Y4vE14v26r106r 1rMI8E67AF67kF1VAFwI0_Jr0_JrylIxkGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWU JVWUCwCI42IY6xIIjxv20xvEc7CjxVAFwI0_Jr0_Gr1lIxAIcVCF04k26cxKx2IYs7xG6r WUJVWrZr1UMIIF0xvEx4A2jsIE14v26r1j6r4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Jr0_ GrUvcSsGvfC2KfnxnUUI43ZEXa7IU1KLvtUUUUU== X-CM-SenderInfo: p2soxqpxvwuhxhgxhubq/ X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.0 (----) --Apple-Mail=_74E2F458-9781-4B12-8776-ED6B0CEE5962 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii At line 221, the assignment (old_res_ptr =3D res_ptr) will lead to = memory leak when iteration of corresponding loop is greater than 3. =20 189 = /* Parse the file's = contents. */ 190 = char *res_ptr =3D NULL; 191 = size_t res_size =3D 0; 192 = =20 193 = for (;;) 194 = { 195 = int c; 196 = char buf1[50+1]; 197 = char buf2[50+1]; 198 = size_t l1, l2; 199 = char *old_res_ptr; 200 = =20 201 = c =3D getc (fp); 202 = if (c =3D=3D EOF) 203 = break; 204 = if (c =3D=3D '\n' || = c =3D=3D ' ' || c =3D=3D '\t') 205 = continue; 206 = if (c =3D=3D '#') 207 = { 208 = /* Skip comment, = to end of line. */ 209 = do 210 = c =3D getc = (fp); 211 = while (!(c =3D=3D = EOF || c =3D=3D '\n')); 212 = if (c =3D=3D EOF) 213 = break; 214 = continue; 215 = } 216 = ungetc (c, fp); 217 = if (fscanf (fp, "%50s = %50s", buf1, buf2) < 2) 218 = break; 219 = l1 =3D strlen (buf1); 220 = l2 =3D strlen (buf2); 221 = old_res_ptr =3D = res_ptr; 222 = if (res_size =3D=3D = 0) 223 = { 224 = res_size =3D l1 + = 1 + l2 + 1; 225 = res_ptr =3D (char = *) malloc (res_size + 1); 226 = } 227 = else 228 = { 229 = res_size +=3D l1 = + 1 + l2 + 1; 230 = res_ptr =3D (char = *) realloc (res_ptr, res_size + 1); 231 = } 232 = if (res_ptr =3D=3D = NULL) 233 = { 234 = /* Out of memory. = */ 235 = res_size =3D 0; 236 = free = (old_res_ptr); 237 = break; 238 = } 239 = strcpy (res_ptr + = res_size - (l2 + 1) - (l1 + 1), buf1); 240 = strcpy (res_ptr + = res_size - (l2 + 1), buf2); 241 = }= --Apple-Mail=_74E2F458-9781-4B12-8776-ED6B0CEE5962 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=us-ascii
At line 221, the assignment = (old_res_ptr =3D res_ptr) will lead to memory leak when = iteration of corresponding loop is greater than 3.


 
189 =             &n= bsp;     /* Parse the file's = contents.  */
190 =             &n= bsp;     char *res_ptr =3D NULL;
191 =             &n= bsp;     size_t res_size =3D 0;
193 =             &n= bsp;     for (;;)
194 =             &n= bsp;       {
195 =             &n= bsp;         int c;
196 =             &n= bsp;         char buf1[5= 0+1];
197 =             &n= bsp;         char buf2[5= 0+1];
198 =             &n= bsp;         size_t l1,&= nbsp;l2;
199 =             &n= bsp;         char *old_r= es_ptr;
201 =             &n= bsp;         c =3D = getc (fp);
202 =             &n= bsp;         if (c = =3D=3D EOF)
203 =             &n= bsp;           brea= k;
204 =             &n= bsp;         if (c = =3D=3D '\n' || c =3D=3D ' ' || c&n= bsp;=3D=3D '\t')
205 =             &n= bsp;           cont= inue;
206 =             &n= bsp;         if (c = =3D=3D '#')
207 =             &n= bsp;           {
208 =             &n= bsp;           &nbs= p; /* Skip comment, to end of line.&nbs= p; */
209 =             &n= bsp;           &nbs= p; do
210 =             &n= bsp;           &nbs= p;   c =3D getc (fp);
211 =             &n= bsp;           &nbs= p; while (!(c =3D=3D EOF || c =3D=3D&nb= sp;'\n'));
212 =             &n= bsp;           &nbs= p; if (c =3D=3D EOF)
213 =             &n= bsp;           &nbs= p;   break;
214 =             &n= bsp;           &nbs= p; continue;
215 =             &n= bsp;           }
216 =             &n= bsp;         ungetc (c,&= nbsp;fp);
217 =             &n= bsp;         if (fscanf&= nbsp;(fp, "%50s %50s", buf1, buf2) < 2)
218 =             &n= bsp;           brea= k;
219 =             &n= bsp;         l1 =3D = ;strlen (buf1);
220 =             &n= bsp;         l2 =3D = ;strlen (buf2);
221 =             &n= bsp;         old_res_ptr = ;=3D res_ptr;
222 =             &n= bsp;         if (res_siz= e =3D=3D 0)
223 =             &n= bsp;           {
224 =             &n= bsp;           &nbs= p; res_size =3D l1 + 1 + l2 + = ;1;
225 =             &n= bsp;           &nbs= p; res_ptr =3D (char *) malloc (res_size&nbs= p;+ 1);
226 =             &n= bsp;           }
227 =             &n= bsp;         else
228 =             &n= bsp;           {
229 =             &n= bsp;           &nbs= p; res_size +=3D l1 + 1 + l2 +&nbs= p;1;
230 =             &n= bsp;           &nbs= p; res_ptr =3D (char *) realloc (res_ptr,&nb= sp;res_size + 1);
231 =             &n= bsp;           }
232 =             &n= bsp;         if (res_ptr=  =3D=3D NULL)
233 =             &n= bsp;           {
234 =             &n= bsp;           &nbs= p; /* Out of memory. */
235 =             &n= bsp;           &nbs= p; res_size =3D 0;
236 =             &n= bsp;           &nbs= p; free (old_res_ptr);
237 =             &n= bsp;           &nbs= p; break;
238 =             &n= bsp;           }
239 =             &n= bsp;         strcpy (res= _ptr + res_size - (l2 + 1) - (l1&n= bsp;+ 1), buf1);
240 =             &n= bsp;         strcpy (res= _ptr + res_size - (l2 + 1), buf2);
241 =             &n= bsp;       }
= --Apple-Mail=_74E2F458-9781-4B12-8776-ED6B0CEE5962-- From unknown Sat Aug 09 13:19:55 2025 X-Loop: help-debbugs@gnu.org Subject: bug#19580: Memory Leak in coreutils/lib/localcharset.c Resent-From: =?UTF-8?Q?P=C3=A1draig?= Brady Original-Sender: "Debbugs-submit" Resent-CC: bug-coreutils@gnu.org Resent-Date: Tue, 13 Jan 2015 10:56:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 19580 X-GNU-PR-Package: coreutils X-GNU-PR-Keywords: To: Zhaopeng Li , 19580@debbugs.gnu.org Received: via spool by 19580-submit@debbugs.gnu.org id=B19580.14211465472465 (code B ref 19580); Tue, 13 Jan 2015 10:56:02 +0000 Received: (at 19580) by debbugs.gnu.org; 13 Jan 2015 10:55:47 +0000 Received: from localhost ([127.0.0.1]:55001 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YAz8U-0000da-S7 for submit@debbugs.gnu.org; Tue, 13 Jan 2015 05:55:47 -0500 Received: from mail1.vodafone.ie ([213.233.128.43]:22615) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YAz8R-0000dF-Sn; Tue, 13 Jan 2015 05:55:44 -0500 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AsAGAGj4tFRtTtD4/2dsb2JhbABbDoJ4gk2BE8Z6gk8CgRNDAQEBAQF9hA0BBTIBVgsNAQoJFg8JAwIBAgFFBgEMCAEBiCwBvniOAAELIJAAhCkBBJ16i0gigzE9PoJ0AQEB Received: from unknown (HELO localhost.localdomain) ([109.78.208.248]) by mail1.vodafone.ie with ESMTP; 13 Jan 2015 10:55:37 +0000 Message-ID: <54B4F9A8.4090007@draigBrady.com> Date: Tue, 13 Jan 2015 10:55:36 +0000 From: =?UTF-8?Q?P=C3=A1draig?= Brady User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 References: <37746A77-739A-4763-A5F3-DD6ECA6DBB77@ustc.edu.cn> In-Reply-To: <37746A77-739A-4763-A5F3-DD6ECA6DBB77@ustc.edu.cn> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) forcemerge 19580 19578 stop On 13/01/15 10:31, Zhaopeng Li wrote: > At line 221, the assignment (old_res_ptr = res_ptr) will lead to memory leak when iteration of corresponding loop is greater than 3. Same non issue really. We don't want to free() here. I'm not sure how to avoid the warning though? thanks, Pádraig. From debbugs-submit-bounces@debbugs.gnu.org Tue Jan 13 06:15:55 2015 Received: (at control) by debbugs.gnu.org; 13 Jan 2015 11:15:55 +0000 Received: from localhost ([127.0.0.1]:55009 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YAzRy-0002TU-R6 for submit@debbugs.gnu.org; Tue, 13 Jan 2015 06:15:54 -0500 Received: from mail1.vodafone.ie ([213.233.128.43]:16175) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YAzRx-0002TH-23 for control@debbugs.gnu.org; Tue, 13 Jan 2015 06:15:53 -0500 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AmUMAP/8tFRtTtD4/2dsb2JhbABbgwaBDYFAgRNPaogkqySUQDVoQwEBAQEBfYQsCipUDQIFFgsCCwMCAQIBOQYCAggNCAEBiCwBqUOPRoVpji2BIZFHgUEFnXqLSCKBRQEBCAEBAQGCGz6CdAIBAg Received: from unknown (HELO localhost.localdomain) ([109.78.208.248]) by mail1.vodafone.ie with ESMTP; 13 Jan 2015 11:15:47 +0000 Message-ID: <54B4FE63.2040509@draigBrady.com> Date: Tue, 13 Jan 2015 11:15:47 +0000 From: =?UTF-8?B?UMOhZHJhaWcgQnJhZHk=?= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: GNU bug tracker automated control server Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Spam-Score: 2.0 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: close 19580 stop [...] Content analysis details: (2.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [213.233.128.43 listed in list.dnswl.org] 1.8 MISSING_SUBJECT Missing Subject: header 0.2 NO_SUBJECT Extra score for no subject X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 2.0 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: close 19580 stop [...] Content analysis details: (2.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [213.233.128.43 listed in list.dnswl.org] 1.8 MISSING_SUBJECT Missing Subject: header 0.2 NO_SUBJECT Extra score for no subject close 19580 stop