pike.git / src / program.c

version» Context lines:

pike.git/src/program.c:7701:    if(shift)    {    size_t bufsize;    char *buffer;    PCHARP from=MKPCHARP(file, shift);    size_t ptr=0;       if (malloced) {    bufsize = len + 21;    buffer = malloc (bufsize); +  if(!buffer) return NULL;    }    else {    bufsize = NELEM(buf) - 1;    buffer = buf;    }       for (; len--; INC_PCHARP(from, 1))    {    size_t space;    int chr = EXTRACT_PCHARP(from);    space = chr > 255 ? 20 : 1;       if (ptr + space > bufsize) {    if (malloced) { -  +  char *new_buffer;    bufsize = (bufsize << 1) + space + 1; -  buffer = realloc (buffer, bufsize); +  new_buffer = realloc (buffer, bufsize); +  if(!new_buffer) +  { +  free(buffer); +  return NULL;    } -  +  buffer = new_buffer; +  }    else    break;    }       if(chr > 255)    {    sprintf(buffer+ptr,"\\u%04X",chr);    ptr+=strlen(buffer+ptr);    }else{    buffer[ptr++]=chr;