From: Jim Meyering Date: Mon, 23 Feb 2009 17:26:05 +0000 (+0100) Subject: libss: Avoid leak upon failed realloc in ss_add_request_table() X-Git-Tag: v1.41.5~44 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=671326f6251d88d27fe7f299f7ede4a452dfca61;p=thirdparty%2Fe2fsprogs.git libss: Avoid leak upon failed realloc in ss_add_request_table() Signed-off-by: Jim Meyering Signed-off-by: Theodore Ts'o --- diff --git a/lib/ss/request_tbl.c b/lib/ss/request_tbl.c index 4027af85f..4632d65d0 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;