X-Git-Url: https://git.saurik.com/apple/libc.git/blobdiff_plain/f74c75964edafe4a1463ed848c56509e4c505b6c..c957a83bde4df2e2d3d1ed0963656856b48ef0a0:/gen/FreeBSD/setprogname.c.patch?ds=sidebyside diff --git a/gen/FreeBSD/setprogname.c.patch b/gen/FreeBSD/setprogname.c.patch index 6ca8162..19cc554 100644 --- a/gen/FreeBSD/setprogname.c.patch +++ b/gen/FreeBSD/setprogname.c.patch @@ -1,21 +1,37 @@ ---- setprogname.c.orig Mon Apr 28 15:05:02 2003 -+++ setprogname.c Fri May 16 14:13:59 2003 -@@ -3,6 +3,8 @@ +--- setprogname.c.orig 2003-05-20 15:21:02.000000000 -0700 ++++ setprogname.c 2005-10-26 00:58:44.000000000 -0700 +@@ -3,6 +3,10 @@ #include #include ++#include ++#include +#include +#define __progname (*_NSGetProgname()) #include "libc_private.h" -@@ -13,7 +15,7 @@ - +@@ -10,10 +14,20 @@ + setprogname(const char *progname) + { + const char *p; +- ++ char buf[2*MAXCOMLEN+1]; ++ int mib[2]; ++ p = strrchr(progname, '/'); if (p != NULL) - __progname = p + 1; -+ __progname = (char *)(p + 1); ++ __progname = (char *)(++p); else - __progname = progname; -+ __progname = (char *)progname; ++ __progname = (char *)(p = progname); ++ ++ strlcpy(&buf[0], p, sizeof(buf)); ++ ++ mib[0] = CTL_KERN; ++ mib[1] = KERN_PROCNAME; ++ ++ /* ignore errors as this is not a hard error */ ++ sysctl(mib, 2, NULL, NULL, &buf[0], 2*MAXCOMLEN); }