exportfs: applying exportfs-chdir patch (from sources)
Fix the behavior of exportfs -r. Check the return of chdir(srv) to prevent exporting accidentally the current working directory when the directory specified with option -r doesn't exist. Also fix at the same time the missing trailing \n in error messages printed just before exits().
This commit is contained in:
parent
3a697585f0
commit
d5305dc199
1 changed files with 10 additions and 5 deletions
|
@ -251,7 +251,12 @@ main(int argc, char **argv)
|
|||
/* do nothing */
|
||||
}
|
||||
else if(srv) {
|
||||
chdir(srv);
|
||||
if(chdir(srv) < 0) {
|
||||
errstr(ebuf, sizeof ebuf);
|
||||
fprint(0, "chdir(\"%s\"): %s\n", srv, ebuf);
|
||||
DEBUG(DFD, "chdir(\"%s\"): %s\n", srv, ebuf);
|
||||
exits(ebuf);
|
||||
}
|
||||
DEBUG(DFD, "invoked as server for %s", srv);
|
||||
strncpy(buf, srv, sizeof buf);
|
||||
}
|
||||
|
@ -261,15 +266,15 @@ main(int argc, char **argv)
|
|||
n = read(0, buf, sizeof(buf)-1);
|
||||
if(n < 0) {
|
||||
errstr(buf, sizeof buf);
|
||||
fprint(0, "read(0): %s", buf);
|
||||
DEBUG(DFD, "read(0): %s", buf);
|
||||
fprint(0, "read(0): %s\n", buf);
|
||||
DEBUG(DFD, "read(0): %s\n", buf);
|
||||
exits(buf);
|
||||
}
|
||||
buf[n] = 0;
|
||||
if(chdir(buf) < 0) {
|
||||
errstr(ebuf, sizeof ebuf);
|
||||
fprint(0, "chdir(%d:\"%s\"): %s", n, buf, ebuf);
|
||||
DEBUG(DFD, "chdir(%d:\"%s\"): %s", n, buf, ebuf);
|
||||
fprint(0, "chdir(%d:\"%s\"): %s\n", n, buf, ebuf);
|
||||
DEBUG(DFD, "chdir(%d:\"%s\"): %s\n", n, buf, ebuf);
|
||||
exits(ebuf);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue