litindex = glob->size / 2;
/* literals 0,1,2,... correspond to size=0,2,4,... */
glob->literal[litindex] = strdup(glob->glob_buffer);
+ if(!glob->literal[litindex])
+ return GLOB_ERROR;
++glob->size;
switch (*pattern) {
for (i = glob->size - 1; i >= 0; --i) {
if (!(i & 1)) { /* even indexes contain literals */
free(glob->literal[i/2]);
- } else { /* odd indexes contain sets or ranges */
+ }
+ else { /* odd indexes contain sets or ranges */
if (glob->pattern[i/2].type == UPTSet) {
- for (elem = glob->pattern[i/2].content.Set.size - 1; elem >= 0; --elem) {
+ for (elem = glob->pattern[i/2].content.Set.size - 1;
+ elem >= 0;
+ --elem) {
free(glob->pattern[i/2].content.Set.elements[elem]);
}
free(glob->pattern[i/2].content.Set.elements);
}
for (i = 0; i < glob->size; ++i) {
- if (!(i % 2)) { /* every other term (i even) is a literal */
+ if (!(i % 2)) { /* every other term (i even) is a literal */
lit = glob->literal[i/2];
strcpy(buf, lit);
buf += strlen(lit);
*buf++ = pat->content.CharRange.ptr_c;
break;
case UPTNumRange:
- sprintf(buf, "%0*d", pat->content.NumRange.padlength, pat->content.NumRange.ptr_n);
+ sprintf(buf, "%0*d",
+ pat->content.NumRange.padlength, pat->content.NumRange.ptr_n);
buf += strlen(buf); /* make no sprint() return code assumptions */
break;
default: