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:
@@ -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;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user