recorder: Fix memory leak
Don't leak path in recorder_open_outfile when the loop loops.
This commit is contained in:
parent
24cc4b49d6
commit
550d595034
@ -1182,7 +1182,6 @@ recorder_open_outfile (ShellRecorder *recorder)
|
|||||||
const char *pattern;
|
const char *pattern;
|
||||||
int flags;
|
int flags;
|
||||||
int outfile = -1;
|
int outfile = -1;
|
||||||
char *path = NULL;
|
|
||||||
|
|
||||||
recorder->count++;
|
recorder->count++;
|
||||||
|
|
||||||
@ -1194,6 +1193,7 @@ recorder_open_outfile (ShellRecorder *recorder)
|
|||||||
{
|
{
|
||||||
GString *filename = g_string_new (NULL);
|
GString *filename = g_string_new (NULL);
|
||||||
const char *p;
|
const char *p;
|
||||||
|
char *path;
|
||||||
|
|
||||||
for (p = pattern; *p; p++)
|
for (p = pattern; *p; p++)
|
||||||
{
|
{
|
||||||
@ -1275,6 +1275,7 @@ recorder_open_outfile (ShellRecorder *recorder)
|
|||||||
g_printerr ("Recording to %s\n", path);
|
g_printerr ("Recording to %s\n", path);
|
||||||
|
|
||||||
g_string_free (filename, TRUE);
|
g_string_free (filename, TRUE);
|
||||||
|
g_free (path);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1283,6 +1284,7 @@ recorder_open_outfile (ShellRecorder *recorder)
|
|||||||
{
|
{
|
||||||
g_warning ("Cannot open output file '%s': %s", filename->str, g_strerror (errno));
|
g_warning ("Cannot open output file '%s': %s", filename->str, g_strerror (errno));
|
||||||
g_string_free (filename, TRUE);
|
g_string_free (filename, TRUE);
|
||||||
|
g_free (path);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1293,16 +1295,17 @@ recorder_open_outfile (ShellRecorder *recorder)
|
|||||||
*/
|
*/
|
||||||
g_warning ("Name collision with existing file for '%s'", filename->str);
|
g_warning ("Name collision with existing file for '%s'", filename->str);
|
||||||
g_string_free (filename, TRUE);
|
g_string_free (filename, TRUE);
|
||||||
|
g_free (path);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_string_free (filename, TRUE);
|
g_string_free (filename, TRUE);
|
||||||
|
g_free (path);
|
||||||
|
|
||||||
increment_unique (unique);
|
increment_unique (unique);
|
||||||
}
|
}
|
||||||
|
|
||||||
out:
|
out:
|
||||||
g_free (path);
|
|
||||||
|
|
||||||
if (outfile != -1)
|
if (outfile != -1)
|
||||||
recorder->unique = g_string_free (unique, FALSE);
|
recorder->unique = g_string_free (unique, FALSE);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user