{
uint32_t tlen = strlen (text), ilen = strlen (insert);
char *new_text = (char*)malloc (tlen + ilen + 1);
- if ((unsigned int) tlen < offset)
- offset = tlen;
- memcpy (new_text, text, offset);
- memcpy (new_text + offset, insert, ilen);
- memcpy (new_text + offset + ilen, text + offset, tlen - offset);
- new_text[tlen + ilen] = '\0';
+ if (new_text) {
+ if ((unsigned int) tlen < offset)
+ offset = tlen;
+ memcpy (new_text, text, offset);
+ memcpy (new_text + offset, insert, ilen);
+ memcpy (new_text + offset + ilen, text + offset, tlen - offset);
+ new_text[tlen + ilen] = '\0';
+ }
return new_text;
}