]> git.decadent.org.uk Git - nfs-utils.git/blobdiff - support/nfs/exports.c
Imported upstream 1.2.6
[nfs-utils.git] / support / nfs / exports.c
index 6acb2b650bee9e9e22755fdc6064c7ba7c0fc448..84a2b08b1f3c69e1b9765e1e42a7aa90c9b3d082 100644 (file)
@@ -39,12 +39,6 @@ struct flav_info flav_map[] = {
        { "krb5",       RPC_AUTH_GSS_KRB5       },
        { "krb5i",      RPC_AUTH_GSS_KRB5I      },
        { "krb5p",      RPC_AUTH_GSS_KRB5P      },
-       { "lipkey",     RPC_AUTH_GSS_LKEY       },
-       { "lipkey-i",   RPC_AUTH_GSS_LKEYI      },
-       { "lipkey-p",   RPC_AUTH_GSS_LKEYP      },
-       { "spkm3",      RPC_AUTH_GSS_SPKM       },
-       { "spkm3i",     RPC_AUTH_GSS_SPKMI      },
-       { "spkm3p",     RPC_AUTH_GSS_SPKMP      },
        { "unix",       AUTH_UNIX               },
        { "sys",        AUTH_SYS                },
        { "null",       AUTH_NULL               },
@@ -142,9 +136,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 +778,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)