X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=support%2Fnfs%2Fexports.c;h=eb1bf2c8db165bbd761603c4d06be5f74e569fa1;hb=26272cc6379200004274a883ad94c70ccf0d2256;hp=dbb2da03be8980363cc242e43215baaee079e6d9;hpb=31d63c645e1dbed5c9912c3daf16cab6076c2797;p=nfs-utils.git diff --git a/support/nfs/exports.c b/support/nfs/exports.c index dbb2da0..eb1bf2c 100644 --- a/support/nfs/exports.c +++ b/support/nfs/exports.c @@ -135,12 +135,19 @@ putexportent(struct exportent *ep) { FILE *fp; int *id, i; + char *esc=ep->e_path; if (!efp) return; fp = efp->x_fp; - fprintf(fp, "%s\t%s(", ep->e_path, ep->e_hostname); + for (i=0; esc[i]; i++) + if (iscntrl(esc[i]) || esc[i] == '"' || esc[i] == '\\'|| isspace(esc[i])) + fprintf(fp, "\\%03o", esc[i]); + else + fprintf(fp, "%c", esc[i]); + + fprintf(fp, "\t%s(", ep->e_hostname); fprintf(fp, "%s,", (ep->e_flags & NFSEXP_READONLY)? "ro" : "rw"); fprintf(fp, "%ssync,", (ep->e_flags & NFSEXP_ASYNC)? "a" : ""); fprintf(fp, "%swdelay,", (ep->e_flags & NFSEXP_GATHERED_WRITES)?