[binutils-gdb] libsframe: use tmp variable for realloc pattern
Indu Bhagat
ibhagat@sourceware.org
Wed Dec 24 09:05:00 GMT 2025
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=1041022101f91c7066c4407c7297aabae88b3c14
commit 1041022101f91c7066c4407c7297aabae88b3c14
Author: Indu Bhagat <indu.bhagat@oracle.com>
Date: Wed Dec 24 00:57:55 2025 -0800
libsframe: use tmp variable for realloc pattern
If realloc fails, the original buffer isnt free'd otherwise.
Reviewed-by: Jens Remus <jremus@linux.ibm.com>
libsframe/
* sframe.c (sframe_encoder_add_fre): Use tmp variable.
(sframe_encoder_add_funcdesc_internal): Likewise.
Diff:
---
libsframe/sframe.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/libsframe/sframe.c b/libsframe/sframe.c
index 6e220055282..98c427a24f3 100644
--- a/libsframe/sframe.c
+++ b/libsframe/sframe.c
@@ -1726,12 +1726,13 @@ sframe_encoder_add_fre (sframe_encoder_ctx *ectx,
fre_tbl_sz = (sizeof (sf_fre_tbl)
+ ((fre_tbl->alloced + number_of_entries)
* sizeof (sframe_frame_row_entry)));
- fre_tbl = realloc (fre_tbl, fre_tbl_sz);
- if (fre_tbl == NULL)
+ sf_fre_tbl *tmp = realloc (fre_tbl, fre_tbl_sz);
+ if (tmp == NULL)
{
sframe_set_errno (&err, SFRAME_ERR_NOMEM);
goto bad; /* OOM. */
}
+ fre_tbl = tmp;
memset (&fre_tbl->entry[fre_tbl->alloced], 0,
number_of_entries * sizeof (sframe_frame_row_entry));
@@ -1811,12 +1812,13 @@ sframe_encoder_add_funcdesc_internal (sframe_encoder_ctx *ectx,
fd_tbl_sz = (sizeof (sf_fde_tbl)
+ ((fd_info->alloced + number_of_entries)
* sizeof (sframe_func_desc_entry_int)));
- fd_info = realloc (fd_info, fd_tbl_sz);
- if (fd_info == NULL)
+ sf_fde_tbl *tmp = realloc (fd_info, fd_tbl_sz);
+ if (tmp == NULL)
{
sframe_set_errno (&err, SFRAME_ERR_NOMEM);
goto bad; /* OOM. */
}
+ fd_info = tmp;
memset (&fd_info->entry[fd_info->alloced], 0,
number_of_entries * sizeof (sframe_func_desc_entry_int));
More information about the Binutils-cvs
mailing list