\r
}\r
\r
-/* BSD style safe strcat; from the secure programming cookbook */\r
-size_t strlcat(char *dst, const char *src, size_t len) {\r
- char *dstptr = dst;\r
- size_t dstlen, tocopy = len;\r
- const char *srcptr = src;\r
-\r
- while (tocopy-- && *dstptr) dstptr++;\r
- dstlen = dstptr - dst;\r
- if (!(tocopy = len - dstlen)) return (dstlen + strlen(src));\r
- while (*srcptr) {\r
- if (tocopy != 1) {\r
- *dstptr++ = *srcptr;\r
- tocopy--;\r
- }\r
- srcptr++;\r
- }\r
- *dstptr = 0;\r
-\r
- return (dstlen + (srcptr - src));\r
-}\r
-\r
/* General routine to initialise a setuid root program, and put the\r
* environment in a known state. Returns 1 on success, if initsetuid() returns\r
* 0 then you should exit(1) immediately, DON'T attempt to recover from the\r
int system_core(char* command, uid_t uid, gid_t gid, char *error);
int safe_system(char* command);
int unpriv_system(char* command, uid_t uid, gid_t gid);
-size_t strlcat(char *dst, const char *src, size_t len);
int initsetuid(void);
+/* Compatibility for the local copy of strlcat,
+ * which has been removed. */
+#define strlcat(src, dst, size) strncat(src, dst, size)
+
#endif