summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--m_option.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/m_option.c b/m_option.c
index 36e538f6f3..b74efb5570 100644
--- a/m_option.c
+++ b/m_option.c
@@ -531,10 +531,12 @@ static int str_list_add(char** add, int n,void* dst,int pre) {
lst = realloc(lst,(n+ln+1)*sizeof(char*));
if(pre) {
- memmove(&lst[n],lst,(ln+1)*sizeof(char*));
+ memmove(&lst[n],lst,ln*sizeof(char*));
memcpy(lst,add,n*sizeof(char*));
} else
- memcpy(&lst[ln],add,(n+1)*sizeof(char*));
+ memcpy(&lst[ln],add,n*sizeof(char*));
+ // (re-)add NULL-termination
+ lst[ln+n] = NULL;
free(add);