fix another memory leak
In sys_early_init(), the values for sysopt.gdbpath and
sysopt.greppath were being assigned by calling dupstr()
without ensuring that a value previously assigned by
dupstr() were free()'d.
Also, the sysopt struct definition is changed to sysopt_s,
not because there's anything wrong with the original
struct sysopt sysopt;
but because I couldn't convince the debugger to use the
correct thing when trying to track down the leak.
This commit is contained in:
@@ -15,7 +15,7 @@
|
||||
at runtime by setting up a value for "DEBUGFILES" in the environment */
|
||||
#endif
|
||||
|
||||
struct sysopt sysopt;
|
||||
struct sysopt_s sysopt;
|
||||
|
||||
void
|
||||
sys_early_init(void)
|
||||
@@ -66,7 +66,11 @@ sys_early_init(void)
|
||||
|
||||
#ifdef PANICTRACE
|
||||
/* panic options */
|
||||
if (sysopt.gdbpath)
|
||||
free((genericptr_t) sysopt.gdbpath), sysopt.gdbpath = 0;
|
||||
sysopt.gdbpath = dupstr(GDBPATH);
|
||||
if (sysopt.greppath)
|
||||
free((genericptr_t) sysopt.greppath), sysopt.greppath = 0;
|
||||
sysopt.greppath = dupstr(GREPPATH);
|
||||
#if (NH_DEVEL_STATUS != NH_STATUS_RELEASED)
|
||||
sysopt.panictrace_gdb = 1;
|
||||
|
||||
Reference in New Issue
Block a user