mirror of https://github.com/moparisthebest/curl
better cleaning up allocated memory in case of failures
This commit is contained in:
parent
bf9a138276
commit
1b80276496
|
@ -232,6 +232,7 @@ static GlobCode glob_word(URLGlob *glob, char *pattern, int pos, int *amount)
|
||||||
*/
|
*/
|
||||||
char* buf = glob->glob_buffer;
|
char* buf = glob->glob_buffer;
|
||||||
int litindex;
|
int litindex;
|
||||||
|
GlobCode res = GLOB_OK;
|
||||||
|
|
||||||
*amount = 1; /* default is one single string */
|
*amount = 1; /* default is one single string */
|
||||||
|
|
||||||
|
@ -261,18 +262,24 @@ static GlobCode glob_word(URLGlob *glob, char *pattern, int pos, int *amount)
|
||||||
|
|
||||||
switch (*pattern) {
|
switch (*pattern) {
|
||||||
case '\0':
|
case '\0':
|
||||||
return GLOB_OK; /* singular URL processed */
|
break; /* singular URL processed */
|
||||||
|
|
||||||
case '{':
|
case '{':
|
||||||
/* process set pattern */
|
/* process set pattern */
|
||||||
return glob_set(glob, ++pattern, ++pos, amount);
|
res = glob_set(glob, ++pattern, ++pos, amount);
|
||||||
|
break;
|
||||||
|
|
||||||
case '[':
|
case '[':
|
||||||
/* process range pattern */
|
/* process range pattern */
|
||||||
return glob_range(glob, ++pattern, ++pos, amount);
|
res= glob_range(glob, ++pattern, ++pos, amount);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return GLOB_ERROR; /* something got wrong */
|
if(GLOB_OK != res)
|
||||||
|
/* free that strdup'ed string again */
|
||||||
|
free(glob->literal[litindex]);
|
||||||
|
|
||||||
|
return res; /* something got wrong */
|
||||||
}
|
}
|
||||||
|
|
||||||
int glob_url(URLGlob** glob, char* url, int *urlnum, FILE *error)
|
int glob_url(URLGlob** glob, char* url, int *urlnum, FILE *error)
|
||||||
|
@ -463,7 +470,9 @@ char *glob_match_url(char *filename, URLGlob *glob)
|
||||||
appendlen=1;
|
appendlen=1;
|
||||||
break;
|
break;
|
||||||
case UPTNumRange:
|
case UPTNumRange:
|
||||||
sprintf(numbuf, "%0*d", pat.content.NumRange.padlength, pat.content.NumRange.ptr_n);
|
sprintf(numbuf, "%0*d",
|
||||||
|
pat.content.NumRange.padlength,
|
||||||
|
pat.content.NumRange.ptr_n);
|
||||||
appendthis = numbuf;
|
appendthis = numbuf;
|
||||||
appendlen = (int)strlen(numbuf);
|
appendlen = (int)strlen(numbuf);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue