summaryrefslogtreecommitdiff
path: root/cmdedit.c
diff options
context:
space:
mode:
authorEric Andersen2000-07-19 17:37:57 +0000
committerEric Andersen2000-07-19 17:37:57 +0000
commit91a4400fd5a74c6e954b22b276dd38c7ffaeae33 (patch)
tree33cf648853df478b733452c48f665e35ad65dc1f /cmdedit.c
parenta16c66335e24009c4cbcd57ce8205b4dfc7b099c (diff)
downloadbusybox-91a4400fd5a74c6e954b22b276dd38c7ffaeae33.zip
busybox-91a4400fd5a74c6e954b22b276dd38c7ffaeae33.tar.gz
Avoid trying to free NULL ptrs. Comment on malloc usages.
-Erik
Diffstat (limited to 'cmdedit.c')
-rw-r--r--cmdedit.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/cmdedit.c b/cmdedit.c
index 0f064b4..0de18e8 100644
--- a/cmdedit.c
+++ b/cmdedit.c
@@ -370,14 +370,16 @@ void input_tab(char* command, char* prompt, int outputFd, int *cursor, int *len)
void get_previous_history(struct history **hp, char* command)
{
- free((*hp)->s);
+ if ((*hp)->s)
+ free((*hp)->s);
(*hp)->s = strdup(command);
*hp = (*hp)->p;
}
void get_next_history(struct history **hp, char* command)
{
- free((*hp)->s);
+ if ((*hp)->s)
+ free((*hp)->s);
(*hp)->s = strdup(command);
*hp = (*hp)->n;
}
@@ -654,7 +656,7 @@ extern void cmdedit_read_input(char* prompt, char command[BUFSIZ])
struct history *h = his_end;
if (!h) {
- /* No previous history */
+ /* No previous history -- this memory is never freed */
h = his_front = malloc(sizeof(struct history));
h->n = malloc(sizeof(struct history));
@@ -666,7 +668,7 @@ extern void cmdedit_read_input(char* prompt, char command[BUFSIZ])
his_end = h->n;
history_counter++;
} else {
- /* Add a new history command */
+ /* Add a new history command -- this memory is never freed */
h->n = malloc(sizeof(struct history));
h->n->p = h;