8 #define LD_PRELOAD "LD_PRELOAD"
9 #define AUTHBINDLIB "AUTHBIND_LIB"
10 #define LIBAUTHBIND "/usr/lib/authbind/libauthbind.so.0"
12 int main(int argc, char *const *argv) {
13 const char *expreload, *authbindlib, *preload;
16 authbindlib= getenv(AUTHBINDLIB);
18 if (setenv(AUTHBINDLIB,LIBAUTHBIND,0)) {
19 perror("authbind: setenv " AUTHBINDLIB);
22 authbindlib= LIBAUTHBIND;
25 if ((expreload= getenv(LD_PRELOAD))) {
26 newpreload= malloc(strlen(expreload)+strlen(authbindlib)+2);
27 strcpy(newpreload,expreload);
28 strcat(newpreload,":");
29 strcat(newpreload,authbindlib);
34 if (setenv(LD_PRELOAD,preload,1)) { perror("authbind: setenv"); exit(-1); }
36 execvp(argv[1],argv+1);
37 perror(argv[1]); exit(-1);