From c4beee768135f70b91b2c0bfa1dbc99a58c1f311 Mon Sep 17 00:00:00 2001 From: Ben Straub Date: Fri, 1 Feb 2013 10:00:55 -0800 Subject: Introduce git__substrdup --- src/util.h | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src/util.h') diff --git a/src/util.h b/src/util.h index e75d777a8..e9edd84a3 100644 --- a/src/util.h +++ b/src/util.h @@ -51,11 +51,7 @@ GIT_INLINE(char *) git__strndup(const char *str, size_t n) while (length < n && str[length]) ++length; - ptr = (char*)malloc(length + 1); - if (!ptr) { - giterr_set_oom(); - return NULL; - } + ptr = (char*)git__malloc(length + 1); if (length) memcpy(ptr, str, length); @@ -65,6 +61,14 @@ GIT_INLINE(char *) git__strndup(const char *str, size_t n) return ptr; } +/* NOTE: This doesn't do null or '\0' checking. Watch those boundaries! */ +GIT_INLINE(char *) git__substrdup(const char *start, size_t n) +{ + char *ptr = (char*)git__calloc(n+1, sizeof(char)); + memcpy(ptr, start, n); + return ptr; +} + GIT_INLINE(void *) git__realloc(void *ptr, size_t size) { void *new_ptr = realloc(ptr, size); -- cgit v1.2.3