diff options
author | unknown <hf@deer.mysql.r18.ru> | 2003-04-16 14:49:46 +0500 |
---|---|---|
committer | unknown <hf@deer.mysql.r18.ru> | 2003-04-16 14:49:46 +0500 |
commit | 01f85890639612136f2bd1cabd779014a226e9f6 (patch) | |
tree | 3fd8938c1760c2ba4534a0e0cc64f1c0665348db /mysys/default.c | |
parent | 7690ab2fb99ff3fb1b1e7b7d0ab775d2af439d2c (diff) | |
download | mariadb-git-01f85890639612136f2bd1cabd779014a226e9f6.tar.gz |
Bugfix for segfault in mysql with embedded library
mysys/default.c:
Fix for bug in mysql with embedded library
we can get NULL in *argv
Diffstat (limited to 'mysys/default.c')
-rw-r--r-- | mysys/default.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/mysys/default.c b/mysys/default.c index 8811efc1190..9fedfd795a5 100644 --- a/mysys/default.c +++ b/mysys/default.c @@ -174,7 +174,8 @@ void load_defaults(const char *conf_file, const char **groups, res= (char**) (ptr+sizeof(alloc)); /* copy name + found arguments + command line arguments to new array */ - res[0]=argv[0][0]; + res[0]=*argc ? argv[0][0] : ""; + memcpy((gptr) (res+1), args.buffer, args.elements*sizeof(char*)); /* Skipp --defaults-file and --defaults-extra-file */ (*argc)-= args_used; @@ -187,8 +188,9 @@ void load_defaults(const char *conf_file, const char **groups, --*argc; ++*argv; /* skipp argument */ } - memcpy((gptr) (res+1+args.elements), (char*) ((*argv)+1), - (*argc-1)*sizeof(char*)); + if (*argc) + memcpy((gptr) (res+1+args.elements), (char*) ((*argv)+1), + (*argc-1)*sizeof(char*)); res[args.elements+ *argc]=0; /* last null */ (*argc)+=args.elements; |