From: Robert Bartel Date: Sat, 11 Mar 2023 22:38:42 +0000 (+0000) Subject: Fixing a few more memory leaks in chat.c X-Git-Tag: ppp-2.5.0~11 X-Git-Url: https://git.ozlabs.org/?p=ppp.git;a=commitdiff_plain;h=1fe5196b10fc30b1dfb8b4b0ac5bf2b6fa49c297 Fixing a few more memory leaks in chat.c Running Valgrind memcheck tool on chat.c while communicating with a modem found additional memory leaks. These fixes plumb those. Signed-off-by: Robert Bartel Signed-off-by: Paul Mackerras --- diff --git a/chat/chat.c b/chat/chat.c index a5bfb9f..fa67fd2 100644 --- a/chat/chat.c +++ b/chat/chat.c @@ -1344,10 +1344,10 @@ int get_string(register char *string) char temp[STR_LEN]; int c, printed = 0, len, minlen; register char *s = temp, *end = s + STR_LEN; - char *logged = temp; + char *s1, *logged = temp; fail_reason = (char *)0; - string = clean(string, 0); + string = s1 = clean(string, 0); len = strlen(string); minlen = (len > sizeof(fail_buffer)? len: sizeof(fail_buffer)) - 1; @@ -1357,12 +1357,14 @@ int get_string(register char *string) if (len > STR_LEN) { msgf("expect string is too long"); exit_code = 1; + free(s1); return 0; } if (len == 0) { if (verbose) msgf("got it"); + free(s1); return (1); } @@ -1410,6 +1412,7 @@ int get_string(register char *string) strftime (report_buffer, 20, "%b %d %H:%M:%S ", tm_now); strcat (report_buffer, report_string[n]); + free(report_string[n]); report_string[n] = (char *) NULL; report_gathering = 1; break; @@ -1441,6 +1444,7 @@ int get_string(register char *string) alarm(0); alarmed = 0; + free(s1); return (1); } @@ -1457,6 +1461,7 @@ int get_string(register char *string) alarmed = 0; exit_code = n + 4; strcpy(fail_reason = fail_buffer, abort_string[n]); + free(s1); return (0); } } @@ -1488,6 +1493,7 @@ int get_string(register char *string) exit_code = 3; alarmed = 0; + free(s1); return (0); }