X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=support%2Fnfs%2Fexports.c;h=c96500fdc73a0e09914edf6f4211703d1d84a539;hb=4cbf492fba6656c245c537e50379f80f4e66d0e7;hp=6acb2b650bee9e9e22755fdc6064c7ba7c0fc448;hpb=73840ef610accf4cf667427bc64805377c0d8394;p=nfs-utils.git diff --git a/support/nfs/exports.c b/support/nfs/exports.c index 6acb2b6..c96500f 100644 --- a/support/nfs/exports.c +++ b/support/nfs/exports.c @@ -142,9 +142,14 @@ getexportent(int fromkernel, int fromexports) return NULL; } first = 0; - - /* Check for default options */ - if (exp[0] == '-') { + + /* + * Check for default options. The kernel will never have default + * options in /proc/fs/nfs/exports, however due to the initial '-' in + * the -test-client- string from the test export we have to check that + * we're not reading from the kernel. + */ + if (exp[0] == '-' && !fromkernel) { if (parseopts(exp + 1, &def_ee, 0, &has_default_subtree_opts) < 0) return NULL; @@ -779,8 +784,9 @@ struct export_features *get_export_features(void) fd = open(path, O_RDONLY); if (fd == -1) goto good; - fd = read(fd, buf, 50); - if (fd == -1) + c = read(fd, buf, 50); + close(fd); + if (c == -1) goto err; c = sscanf(buf, "%x %x", &ef.flags, &ef.secinfo_flags); if (c != 2)