From: Manjeet Pawar <manjee...@samsung.com>
Subject: [PATCH] pan/splitstr.c: Add check for realloc failure case

This patch adds check for realloc failure case and free arg_string before 
returning from splitstr() to avoid memory leaks

Signed-off-by: Yogesh Gaur <yn.g...@samsung.com>
Signed-off-by: Manjeet Pawar <manjee...@samsung.com>
---
 pan/splitstr.c |   11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/pan/splitstr.c b/pan/splitstr.c
index 4706323..8804b15 100644
--- a/pan/splitstr.c
+++ b/pan/splitstr.c
@@ -93,6 +93,7 @@ const char **splitstr(const char *str, const char *separator, 
int *argcount)
        if (arg_array == NULL) {
                if (argcount != NULL)
                        *argcount = 0;
+               free(arg_string);
                return (NULL);
        }
 
@@ -110,9 +111,13 @@ const char **splitstr(const char *str, const char 
*separator, int *argcount)
                cur_tok = strtok(NULL, separator);
                if (num_toks == max_toks) {
                        max_toks += 20;
-                       arg_array =
-                           (char **)realloc((void *)arg_array,
-                                            sizeof(char *) * max_toks);
+                       if((arg_array = realloc((void *)arg_array,sizeof(char 
*) * max_toks)) == NULL){
+                               fprintf(stderr, "realloc: New memory allocation 
failed \n");
+                               free(arg_array);
+                               free(arg_string);
+                               exit(1);
+                       }
+
                }
        }
        arg_array[num_toks] = NULL;
-- 
1.7.9.5
------------------------------------------------------------------------------
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to