Initialise the arg2 pointer properly (also free it when freeing the

others). Fixes crashes with J in malloc_options reported by oga.
This commit is contained in:
Nicholas Marriott 2009-08-26 18:09:52 +00:00
parent ddf97f8289
commit 2e5b3ab8bc

View File

@ -155,6 +155,7 @@ cmd_target_init(struct cmd *self, unused int key)
data->chflags = 0; data->chflags = 0;
data->target = NULL; data->target = NULL;
data->arg = NULL; data->arg = NULL;
data->arg2 = NULL;
} }
int int
@ -204,6 +205,8 @@ cmd_target_free(struct cmd *self)
xfree(data->target); xfree(data->target);
if (data->arg != NULL) if (data->arg != NULL)
xfree(data->arg); xfree(data->arg);
if (data->arg2 != NULL)
xfree(data->arg2);
xfree(data); xfree(data);
} }
@ -236,6 +239,7 @@ cmd_srcdst_init(struct cmd *self, unused int key)
data->src = NULL; data->src = NULL;
data->dst = NULL; data->dst = NULL;
data->arg = NULL; data->arg = NULL;
data->arg2 = NULL;
} }
int int
@ -290,6 +294,8 @@ cmd_srcdst_free(struct cmd *self)
xfree(data->dst); xfree(data->dst);
if (data->arg != NULL) if (data->arg != NULL)
xfree(data->arg); xfree(data->arg);
if (data->arg2 != NULL)
xfree(data->arg2);
xfree(data); xfree(data);
} }
@ -324,6 +330,7 @@ cmd_buffer_init(struct cmd *self, unused int key)
data->target = NULL; data->target = NULL;
data->buffer = -1; data->buffer = -1;
data->arg = NULL; data->arg = NULL;
data->arg2 = NULL;
} }
int int
@ -384,6 +391,8 @@ cmd_buffer_free(struct cmd *self)
xfree(data->target); xfree(data->target);
if (data->arg != NULL) if (data->arg != NULL)
xfree(data->arg); xfree(data->arg);
if (data->arg2 != NULL)
xfree(data->arg2);
xfree(data); xfree(data);
} }