Skip to content

Instantly share code, notes, and snippets.

@igable
Created December 22, 2013 02:14
Show Gist options
  • Save igable/8077668 to your computer and use it in GitHub Desktop.
Save igable/8077668 to your computer and use it in GitHub Desktop.
With the new default secure strlcpy/strlcat functions in 10.9 web100clt no longer builds on 10.9. This patch removes the offending package defined functions.
diff --git a/src/strlutils.c b/src/strlutils.c
index 01e0710..0ec23a6 100644
--- a/src/strlutils.c
+++ b/src/strlutils.c
@@ -19,66 +19,4 @@
#include <sys/types.h>
#include <string.h>
-/*
- * Copy src to string dst of size siz. At most siz-1 characters
- * will be copied. Always NUL terminates (unless siz == 0).
- * Returns strlen(src); if retval >= siz, truncation occurred.
- */
-size_t strlcpy(char *dst, const char *src, size_t siz) {
- char *d = dst;
- const char *s = src;
- size_t n = siz;
-
- /* Copy as many bytes as will fit */
- if (n != 0) {
- while (--n != 0) {
- if ((*d++ = *s++) == '\0')
- break;
- }
- }
-
- /* Not enough room in dst, add NUL and traverse rest of src */
- if (n == 0) {
- if (siz != 0)
- *d = '\0'; /* NUL-terminate dst */
- while (*s++) { }
- }
-
- return (s - src - 1); /* count does not include NUL */
-}
-
-/*
- * Appends src to string dst of size siz (unlike strncat, siz is the
- * full size of dst, not space left). At most siz-1 characters
- * will be copied. Always NUL terminates (unless siz <= strlen(dst)).
- * Returns strlen(src) + MIN(siz, strlen(initial dst)).
- * If retval >= siz, truncation occurred.
- */
-size_t strlcat(dst, src, siz)
- char *dst;
- const char *src;
- size_t siz; {
- register char *d = dst;
- register const char *s = src;
- register size_t n = siz;
- size_t dlen;
-
- /* Find the end of dst and adjust bytes left but don't go past end */
- while (n-- != 0 && *d != '\0')
- d++;
- dlen = d - dst;
- n = siz - dlen;
-
- if (n == 0)
- return (dlen + strlen(s));
- while (*s != '\0') {
- if (n != 1) {
- *d++ = *s;
- n--;
- }
- s++;
- }
- *d = '\0';
- return (dlen + (s - src)); /* count does not include NUL */
- }
diff --git a/src/strlutils.h b/src/strlutils.h
index 14783a6..f38c2f3 100644
--- a/src/strlutils.h
+++ b/src/strlutils.h
@@ -27,8 +27,5 @@
* will be copied. Always NUL terminates (unless siz == 0).
* Returns strlen(src); if retval >= siz, truncation occurred.
*/
-extern size_t
-strlcpy(char *dst, const char *src, size_t siz);
-size_t strlcat(char *dst, const char *src, size_t siz);
#endif // SRC_STRLUTILS_H_
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment