[12/13] libsframe: use tmp variable for realloc pattern

Message ID 20251202073414.200246-13-indu.bhagat@oracle.com
State New
Headers
Series sframe: some refactoring and misc improvements |

Commit Message

Indu Bhagat Dec. 2, 2025, 7:34 a.m. UTC
  If realloc fails, the original buffer isnt free'd otherwise.

libsframe/
        * sframe.c (sframe_encoder_add_fre): Use tmp variable.
        (sframe_encoder_add_funcdesc_internal): Likewise.
---
 libsframe/sframe.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)
  

Patch

diff --git a/libsframe/sframe.c b/libsframe/sframe.c
index 7a187507c46..ee94c9227f4 100644
--- a/libsframe/sframe.c
+++ b/libsframe/sframe.c
@@ -1732,12 +1732,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));
@@ -1819,12 +1820,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));