Patch for rt.cpan.org #5485: add UID to socketname --- ./main.c +++ ./main.c @@ -223,6 +223,9 @@ MakeSockName(char * scriptname ) /* strict C compilers can't/won't do char foo[variant]; */ char *fullpath = my_malloc(path_max); int i = 0; + char euid[12]; + + sprintf(euid, "_%d", geteuid()); if (realpath(scriptname, fullpath) == NULL) { perror("pperl: resolving full pathname to script failed"); @@ -230,7 +233,7 @@ MakeSockName(char * scriptname ) } Dx(Debug("realpath returned: %s\n", fullpath)); /* Ugh. I am a terrible C programmer! */ - sockname = my_malloc(strlen(P_tmpdir) + strlen(fullpath) + 3); + sockname = my_malloc(strlen(P_tmpdir) + strlen(fullpath) + 3 + strlen(euid)); save = sockname; sprintf(sockname, "%s/", P_tmpdir); sockname += strlen(P_tmpdir) + 1; @@ -246,7 +249,7 @@ MakeSockName(char * scriptname ) } sockname++; i++; } - *sockname = '\0'; + strcat(sockname, euid); free(fullpath); return save; }