X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=support%2Fexport%2Frmtab.c;h=b49e1aaa9c121922d943a4b91cad496b9f9c4924;hp=15aab155ff18791c15d6ab68ba32f82d7909a5f6;hb=5d954d871fb265af584faef5df6e2e7e6ada7c3b;hpb=ac5b03be829b4c9369ebfb07a688308721103228 diff --git a/support/export/rmtab.c b/support/export/rmtab.c index 15aab15..b49e1aa 100644 --- a/support/export/rmtab.c +++ b/support/export/rmtab.c @@ -23,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) { @@ -31,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))) { @@ -43,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; } @@ -59,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"))) {