From bfbd0bb6ecbbbf75a5caaff6afaf5a6af8fa518e Mon Sep 17 00:00:00 2001 From: Peter Eriksen Date: Sun, 11 Jun 2006 14:03:28 +0200 Subject: Implement safe_strncpy() as strlcpy() and use it more. Signed-off-by: Peter Eriksen Signed-off-by: Junio C Hamano --- path.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'path.c') diff --git a/path.c b/path.c index 5168b5f17..194e0b553 100644 --- a/path.c +++ b/path.c @@ -83,14 +83,19 @@ int git_mkstemp(char *path, size_t len, const char *template) } -char *safe_strncpy(char *dest, const char *src, size_t n) +size_t safe_strncpy(char *dest, const char *src, size_t size) { - strncpy(dest, src, n); - dest[n - 1] = '\0'; + size_t ret = strlen(src); - return dest; + if (size) { + size_t len = (ret >= size) ? size - 1 : ret; + memcpy(dest, src, len); + dest[len] = '\0'; + } + return ret; } + int validate_symref(const char *path) { struct stat st; -- cgit v1.2.1