diff options
-rw-r--r-- | m_option.c | 6 |
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); |