``` unsigned char String::changeBuffer(unsigned int maxStrLen) { size_t newSize = (maxStrLen + 16) & (~0xf); char *newbuffer = (char *) malloc(newSize); if(newbuffer) { memset(newbuffer, 0, newSize); memcpy(newbuffer, buffer, len); if (buffer) { free(buffer); } capacity = newSize - 1; buffer = newbuffer; return 1; } buffer = newbuffer; return 0; } ``` I think on allocation failure nothing should happen and 0 should be returned.