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=5b39edfee423f5f3cbe8fa223dcfdc9e8d66e286;hp=d91d884d215330a916bef8966ed6b06ca0fec907;hpb=9e23eaf77234a5ea8f3faa96d7dc48aafb157357;p=util-vserver.git diff --git a/util-vserver/src/save_ctxinfo.c b/util-vserver/src/save_ctxinfo.c index d91d884..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" @@ -52,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]; @@ -75,8 +76,9 @@ int main(int argc, char *argv[]) return 255; } - EreadlinkD(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 = EopenD(dstfile, O_EXCL|O_CREAT|O_WRONLY, 0644); if (write(fd, buf, len) !=len || @@ -86,8 +88,8 @@ int main(int argc, char *argv[]) } Eclose(fd); - strcat(runfile, ".rev/"); - strcat(runfile, buf); + strcpy(runfile, DEFAULT_PKGSTATEREVDIR "/"); + strncat(runfile, buf, len); unlink(runfile); EsymlinkD(argv[1], runfile);