X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Fsrc%2Fsave_ctxinfo.c;h=2f84d3f51fa3f59e96214b3c41b073240b87bf74;hb=0d5f1561a88261415e2f3cf4f1de411d11878562;hp=5bd0e22adbdd3f29bd789efe2a8ca9bcdb362c0d;hpb=86a23427cca76a5a9befd60c85535a0e738bc3c6;p=util-vserver.git diff --git a/util-vserver/src/save_ctxinfo.c b/util-vserver/src/save_ctxinfo.c index 5bd0e22..2f84d3f 100644 --- a/util-vserver/src/save_ctxinfo.c +++ b/util-vserver/src/save_ctxinfo.c @@ -22,6 +22,7 @@ # include #endif +#include "pathconfig.h" #include "vserver.h" #include "internal.h" #include "util.h" @@ -31,10 +32,12 @@ #include #include #include +#include -#define ENSC_WRAPPERS_VSERVER 1 -#define ENSC_WRAPPERS_UNISTD 1 -#define ENSC_WRAPPERS_FCNTL 1 +#define ENSC_WRAPPERS_PREFIX "save_ctxinfo: " +#define ENSC_WRAPPERS_VSERVER 1 +#define ENSC_WRAPPERS_UNISTD 1 +#define ENSC_WRAPPERS_FCNTL 1 #include int wrapper_exit_code = 255; @@ -50,7 +53,7 @@ checkParams(int argc, char UNUSED * argv[]) int main(int argc, char *argv[]) { - char runfile[(checkParams(argc,argv),strlen(argv[1])) + sizeof("/run.rev/99999")]; + char runfile[(checkParams(argc,argv),strlen(argv[1])) + sizeof(DEFAULT_PKGSTATEREVDIR "/99999")]; char dstfile[PATH_MAX]; int fd; char buf[sizeof(int)*3+2]; @@ -73,21 +76,22 @@ int main(int argc, char *argv[]) return 255; } - Ereadlink(runfile, dstfile, sizeof(dstfile)); - len = utilvserver_fmt_uint(buf, ctx); + len = EreadlinkD(runfile, dstfile, sizeof(dstfile)-1); + dstfile[len] = '\0'; + len = utilvserver_fmt_uint(buf, ctx); - fd = Eopen(dstfile, O_EXCL|O_CREAT|O_WRONLY, 0644); + fd = EopenD(dstfile, O_EXCL|O_CREAT|O_WRONLY, 0644); if (write(fd, buf, len) !=len || write(fd, "\n", 1) !=1) { - perror("write()"); + perror("save_ctxinfo: write()"); return -1; } Eclose(fd); - strcat(runfile, ".rev/"); - strcat(runfile, buf); + strcpy(runfile, DEFAULT_PKGSTATEREVDIR "/"); + strncat(runfile, buf, len); unlink(runfile); - Esymlink(argv[1], runfile); + EsymlinkD(argv[1], runfile); Eexecv(argv[2], argv+2); }