From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Dan Nicolaescu Newsgroups: gmane.emacs.devel Subject: Problem report #46 Date: Sun, 30 Apr 2006 09:44:46 -0700 Message-ID: <200604301644.k3UGik2H029021@scanner2.ics.uci.edu> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1146417070 29227 80.91.229.2 (30 Apr 2006 17:11:10 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Sun, 30 Apr 2006 17:11:10 +0000 (UTC) Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Apr 30 19:11:08 2006 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1FaFRo-0000Z7-Nf for ged-emacs-devel@m.gmane.org; Sun, 30 Apr 2006 19:11:05 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1FaFRo-0004Z0-5A for ged-emacs-devel@m.gmane.org; Sun, 30 Apr 2006 13:11:04 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1FaFQb-0003iZ-Qf for emacs-devel@gnu.org; Sun, 30 Apr 2006 13:09:49 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1FaFQa-0003hW-A2 for emacs-devel@gnu.org; Sun, 30 Apr 2006 13:09:48 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1FaFQa-0003hO-65 for emacs-devel@gnu.org; Sun, 30 Apr 2006 13:09:48 -0400 Original-Received: from [128.195.1.36] (helo=scanner2.ics.uci.edu) by monty-python.gnu.org with esmtp (Exim 4.52) id 1FaFUD-0007x0-2R for emacs-devel@gnu.org; Sun, 30 Apr 2006 13:13:33 -0400 Original-Received: from vino.ics.uci.edu (vino.ics.uci.edu [128.195.11.198]) by scanner2.ics.uci.edu (8.13.6/8.13.5) with ESMTP id k3UGik2H029021 for ; Sun, 30 Apr 2006 09:44:46 -0700 (PDT) Original-To: emacs-devel@gnu.org Mail-Followup-To: emacs-devel@gnu.org Original-Lines: 84 X-ICS-MailScanner: Found to be clean X-ICS-MailScanner-SpamCheck: not spam (whitelisted), SpamAssassin (score=-1.286, required 5, autolearn=disabled, ALL_TRUSTED -1.44, TW_CP 0.08, TW_XR 0.08) X-ICS-MailScanner-From: dann@vino.ics.uci.edu X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:53676 Archived-At: This looks like it might be a duplicate of #45 CID: 46 Checker: RESOURCE_LEAK (help) File: emacs/lib-src/etags.c Function: Erlang_functions Description: Variable "last" not freed or pointed-to in function "strncpy" 5575 static void 5576 Erlang_functions (inf) 5577 FILE *inf; 5578 { 5579 char *cp, *last; 5580 int len; 5581 int allocated; 5582 5583 allocated = 0; 5584 len = 0; 5585 last = NULL; 5586 At conditional (1): "feof == 0" taking true path At conditional (2): "((readline), (cp = (lb).buffer)), (1 != 0)" taking true path 5587 LOOP_ON_INPUT_LINES (inf, lb, cp) 5588 { At conditional (3): "*(cp + 0) == 0" taking false path 5589 if (cp[0] == '\0') /* Empty line */ 5590 continue; At conditional (4): "_wht[*(cp + 0) & 255] != 0" taking false path 5591 else if (iswhite (cp[0])) /* Not function nor attribute */ 5592 continue; At conditional (5): "*(cp + 0) == 37" taking false path 5593 else if (cp[0] == '%') /* comment */ 5594 continue; At conditional (6): "*(cp + 0) == 34" taking false path 5595 else if (cp[0] == '"') /* Sometimes, strings start in column one */ 5596 continue; At conditional (7): "*(cp + 0) == 45" taking true path 5597 else if (cp[0] == '-') /* attribute, e.g. "-define" */ 5598 { 5599 erlang_attribute (cp); Event overwrite_var: Value "last" is overwritten in "last = 0" Also see events: [alloc_fn][var_assign][pass_arg] 5600 last = NULL; 5601 } 5602 else if ((len = erlang_func (cp, last)) > 0) 5603 { 5604 /* 5605 * Function. Store the function name so that we only 5606 * generates a tag for the first clause. 5607 */ 5608 if (last == NULL) Event alloc_fn: Called allocation function "xmalloc" [model] Event var_assign: Assigned variable "last" to storage returned from "xmalloc" Also see events: [var_assign][overwrite_var][pass_arg] 5609 last = xnew (len + 1, char); 5610 else if (len + 1 > allocated) 5611 xrnew (last, len + 1, char); 5612 allocated = len + 1; Event pass_arg: Variable "last" not freed or pointed-to in function "strncpy" Also see events: [alloc_fn][var_assign][overwrite_var] 5613 strncpy (last, cp, len); 5614 last[len] = '\0'; 5615 } 5616 } 5617 }