diff options
author | William Pitcock <nenolod@dereferenced.org> | 2017-06-14 13:09:23 -0500 |
---|---|---|
committer | William Pitcock <nenolod@dereferenced.org> | 2017-06-14 13:09:23 -0500 |
commit | f67416822a54109bd9cfa0fd210d7d8f53412ced (patch) | |
tree | 7d3d14933f39ca160d706d1bec25ce541a188962 /string.c | |
parent | 2b58008b911d9dc8354b9001e22b594fa6456dd1 (diff) | |
download | gcompat-f67416822a54109bd9cfa0fd210d7d8f53412ced.tar.gz gcompat-f67416822a54109bd9cfa0fd210d7d8f53412ced.tar.bz2 gcompat-f67416822a54109bd9cfa0fd210d7d8f53412ced.tar.xz gcompat-f67416822a54109bd9cfa0fd210d7d8f53412ced.zip |
move all compatibility library stuff into libgcompat/
Diffstat (limited to 'string.c')
-rw-r--r-- | string.c | 84 |
1 files changed, 0 insertions, 84 deletions
diff --git a/string.c b/string.c deleted file mode 100644 index 9a1cb60..0000000 --- a/string.c +++ /dev/null @@ -1,84 +0,0 @@ -#include <assert.h> /* assert */ -#include <string.h> /* memcpy, strcpy, strncat, strndup */ - -/* "Checked" memcpy */ -void *__memcpy_chk(void *dest, const void *src, size_t len, size_t destlen) -{ - assert(dest != NULL); - assert(src != NULL); - assert(len <= destlen); - if(src < dest) - { - assert(!(src + len >= dest)); - } else { - assert(!(dest + len >= src)); - } - return memcpy(dest, src, len); -} - -/* "Checked" strncat */ -char *__strncat_chk(char *dest, const char *src, size_t n, size_t destlen) -{ - assert(dest != NULL); - assert(src != NULL); - assert(n <= destlen); - - return strncat(dest, src, n); -} - -/* "Checked" strcat */ -char *__strcat_chk(char *dest, const char *src, size_t destlen) -{ - return strncat(dest, src, destlen - 1); -} - -/* "Checked" strncpy */ -char *__strncpy_chk(char *dest, const char *src, size_t n, size_t destlen) -{ - assert(dest != NULL); - assert(src != NULL); - assert(strlen(src) < destlen); - - return strncpy(dest, src, n); -} - -/* "Checked" strcpy */ -char *__strcpy_chk(char *dest, const char *src, size_t destlen) -{ - assert(dest != NULL); - assert(src != NULL); - assert(strlen(src) < destlen); - - return strcpy(dest, src); -} - -/* Literally a useless __ alias. */ -char *__strndup(const char *str, size_t count) -{ - return strndup(str, count); -} - -/* The existance of this method, and the fact it is used in real code, gives - * me nightmares. */ -void *rawmemchr(const void *s, int c) -{ - const unsigned char *haystack = s; - unsigned char needle = (unsigned char)c; - while(*haystack++ != needle); - return (void *)haystack; -} - -extern __typeof(rawmemchr) __rawmemchr __attribute__((weak, alias("rawmemchr"))); - -/* Another useless __ alias */ -char *__strtok_r(char *str, const char *delim, char **saveptr) -{ - return strtok_r(str, delim, saveptr); -} - -/* The "global" definition of strsep in glibc, used when architecture dependent - * assembler versions aren't good enough. */ -char *__strsep_g(char **stringp, const char *delim) -{ - return strsep(stringp, delim); -} |