gssmask: log_function memory leak

Do not leak 'file' on error and reduce clutter. free() in common exit
path.

Change-Id: Icb187ea50e9c3d405076a192aa61cbade4b6d7d4
This commit is contained in:
Jeffrey Altman
2016-11-14 17:02:02 -05:00
parent d3fc257245
commit 84e959a752

View File

@@ -566,7 +566,7 @@ log_function(void *ptr)
{ {
struct client *c = ptr; struct client *c = ptr;
int32_t cmd, line; int32_t cmd, line;
char *file, *string; char *file = NULL, *string = NULL;
while (1) { while (1) {
if (krb5_ret_int32(c->logsock, &cmd)) if (krb5_ret_int32(c->logsock, &cmd))
@@ -576,7 +576,6 @@ log_function(void *ptr)
case eLogSetMoniker: case eLogSetMoniker:
if (krb5_ret_string(c->logsock, &file)) if (krb5_ret_string(c->logsock, &file))
goto out; goto out;
free(file);
break; break;
case eLogInfo: case eLogInfo:
case eLogFailure: case eLogFailure:
@@ -591,8 +590,6 @@ log_function(void *ptr)
fprintf(logfile, "%s:%lu: %s\n", fprintf(logfile, "%s:%lu: %s\n",
file, (unsigned long)line, string); file, (unsigned long)line, string);
fflush(logfile); fflush(logfile);
free(file);
free(string);
if (krb5_store_int32(c->logsock, 0)) if (krb5_store_int32(c->logsock, 0))
goto out; goto out;
break; break;
@@ -601,6 +598,8 @@ log_function(void *ptr)
} }
} }
out: out:
free(file);
free(string);
return 0; return 0;
} }