X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=support%2Fexport%2Frmtab.c;h=b49e1aaa9c121922d943a4b91cad496b9f9c4924;hp=58e59f4e111da0d784a4f4ab6d40c5ab128a3532;hb=aa4b66b12b631885ed85f3ebe97e68b033407178;hpb=f68785e72129ab643d6c793bd5a11bdf0010eff9 diff --git a/support/export/rmtab.c b/support/export/rmtab.c index 58e59f4..b49e1aa 100644 --- a/support/export/rmtab.c +++ b/support/export/rmtab.c @@ -5,7 +5,9 @@ * */ -#include "config.h" +#ifdef HAVE_CONFIG_H +#include +#endif #include #include @@ -21,7 +23,7 @@ int rmtab_read(void) { struct rmtabent *rep; - nfs_export *exp; + nfs_export *exp = NULL; setrmtabent("r"); while ((rep = getrmtabent(1, NULL)) != NULL) { @@ -29,7 +31,7 @@ rmtab_read(void) int htype; htype = client_gettype(rep->r_client); - if (htype == MCL_FQDN + if ((htype == MCL_FQDN || htype == MCL_SUBNETWORK) && (hp = gethostbyname (rep->r_client)) && (hp = hostent_dup (hp), exp = export_allowed (hp, rep->r_path))) { @@ -41,9 +43,7 @@ rmtab_read(void) if (!exp2) { struct exportent ee; dupexportent(&ee, &exp->m_export); - strncpy (ee.e_hostname, rep->r_client, - sizeof (ee.e_hostname) - 1); - ee.e_hostname[sizeof (ee.e_hostname) -1] = '\0'; + ee.e_hostname = rep->r_client; exp2 = export_create(&ee, 0); exp2->m_changed = exp->m_changed; } @@ -57,7 +57,7 @@ rmtab_read(void) file. */ int lockid; FILE *fp; - if ((lockid = xflock(_PATH_RMTAB, "w")) < 0) + if ((lockid = xflock(_PATH_RMTABLCK, "w")) < 0) return -1; rewindrmtabent(); if (!(fp = fsetrmtabent(_PATH_RMTABTMP, "w"))) {