diff options
Diffstat (limited to 'libreport/src/lib/overlapping_strcpy.c')
-rw-r--r-- | libreport/src/lib/overlapping_strcpy.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/libreport/src/lib/overlapping_strcpy.c b/libreport/src/lib/overlapping_strcpy.c new file mode 100644 index 00000000..3301024f --- /dev/null +++ b/libreport/src/lib/overlapping_strcpy.c @@ -0,0 +1,22 @@ +/* + * Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org> + * + * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. + */ +#include "libreport.h" + +/* Like strcpy but can copy overlapping strings. */ +void overlapping_strcpy(char *dst, const char *src) +{ + /* Cheap optimization for dst == src case - + * better to have it here than in many callers. + */ + if (dst != src) + { + while ((*dst = *src) != '\0') + { + dst++; + src++; + } + } +} |