win32: fix fail-path double free in glob

0.96
aCaB 16 years ago
parent 1ec801a02a
commit e94bd376e8
  1. 10
      win32/compat/setargv.c

@ -91,7 +91,15 @@ int _setargv() {
memcpy(path, begparm, endparm - begparm);
path[endparm - begparm] = '\0';
if(!argc || !need_glob || !(arglen = glob_add(path, &argc, &argv))) {
if(argc && need_glob) {
arglen = glob_add(path, &argc, &argv);
if(!arglen) {
*path = malloc(endparm - begparm + 1);
memcpy(path, begparm, endparm - begparm);
path[endparm - begparm] = '\0';
}
}
if(!arglen) {
argv = realloc(argv, sizeof(*argv) * (argc + 1));
argv[argc] = path;
argc++;

Loading…
Cancel
Save