From patchwork Mon Feb 23 17:26:05 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jim Meyering X-Patchwork-Id: 23572 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by ozlabs.org (Postfix) with ESMTP id 66394DDEFD for ; Tue, 24 Feb 2009 04:26:17 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751069AbZBWR0R (ORCPT ); Mon, 23 Feb 2009 12:26:17 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752012AbZBWR0R (ORCPT ); Mon, 23 Feb 2009 12:26:17 -0500 Received: from smtp3-g21.free.fr ([212.27.42.3]:33291 "EHLO smtp3-g21.free.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751069AbZBWR0Q (ORCPT ); Mon, 23 Feb 2009 12:26:16 -0500 Received: from smtp3-g21.free.fr (localhost [127.0.0.1]) by smtp3-g21.free.fr (Postfix) with ESMTP id B491C81818B for ; Mon, 23 Feb 2009 18:26:08 +0100 (CET) Received: from mx.meyering.net (mx.meyering.net [82.230.74.64]) by smtp3-g21.free.fr (Postfix) with ESMTP id 8E03B8182BC for ; Mon, 23 Feb 2009 18:26:05 +0100 (CET) Received: by rho.meyering.net (Acme Bit-Twister, from userid 1000) id 6818185F3; Mon, 23 Feb 2009 18:26:05 +0100 (CET) From: Jim Meyering To: linux-ext4@vger.kernel.org Subject: [PATCH] * request_tbl.c (ss_add_request_table): Avoid leak upon failed realloc. Date: Mon, 23 Feb 2009 18:26:05 +0100 Message-ID: <87ocwtcbf6.fsf@meyering.net> Lines: 38 MIME-Version: 1.0 Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org Signed-off-by: Jim Meyering --- Here's another found via inspection. It looks like it can only affect debugfs. lib/ss/request_tbl.c | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-) -- 1.6.2.rc1.266.g4bdf -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/lib/ss/request_tbl.c b/lib/ss/request_tbl.c index 4027af8..4632d65 100644 --- a/lib/ss/request_tbl.c +++ b/lib/ss/request_tbl.c @@ -27,18 +27,19 @@ void ss_add_request_table(sci_idx, rqtbl_ptr, position, code_ptr) { register ss_data *info; register int i, size; + ssrt **t; info = ss_info(sci_idx); for (size=0; info->rqt_tables[size] != (ssrt *)NULL; size++) ; /* size == C subscript of NULL == #elements */ size += 2; /* new element, and NULL */ - info->rqt_tables = (ssrt **)realloc(info->rqt_tables, - (unsigned)size*sizeof(ssrt)); - if (info->rqt_tables == (ssrt **)NULL) { + t = (ssrt **)realloc(info->rqt_tables, (unsigned)size*sizeof(ssrt)); + if (t == (ssrt **)NULL) { *code_ptr = errno; return; } + info->rqt_tables = t; if (position > size - 2) position = size - 2;