XUtils: add safe strncpy implementation

The standard strncpy fails to null-terminate the destination in case
the source is longer than the passed size.
This commit is contained in:
Christian Göttsche
2021-01-05 14:44:09 +01:00
committed by BenBE
parent 3715301fe3
commit a118928dee
2 changed files with 15 additions and 0 deletions

View File

@ -193,6 +193,18 @@ char* String_readLine(FILE* fd) {
}
}
size_t String_safeStrncpy(char *restrict dest, const char *restrict src, size_t size) {
assert(size > 0);
size_t i = 0;
for (; i < size - 1 && src[i]; i++)
dest[i] = src[i];
dest[i] = '\0';
return i;
}
int xAsprintf(char** strp, const char* fmt, ...) {
va_list vl;
va_start(vl, fmt);