X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=utils%2Fstatd%2Fmisc.c;h=725629116a2228be0fdb013c623e4f1426f31a6a;hp=fd201b4b09eabc67307c4695ee8e5633f23b4563;hb=bc870150cc2116584aee288d15ac2b9a2f825ff5;hpb=f846abde5faa4742b4823fa981080b1f5dac66b1 diff --git a/utils/statd/misc.c b/utils/statd/misc.c index fd201b4..7256291 100644 --- a/utils/statd/misc.c +++ b/utils/statd/misc.c @@ -53,23 +53,25 @@ xstrdup (const char *string) /* - * Call with check=1 to verify that this host is not still on the rtnl - * before unlinking file. + * Unlinking a file. */ void -xunlink (char *path, char *host, short int check) +xunlink (char *path, char *host) { - char *tozap; + char *tozap; - tozap=alloca (strlen(path)+strlen(host)+2); - sprintf (tozap, "%s/%s", path, host); + tozap = malloc(strlen(path)+strlen(host)+2); + if (tozap == NULL) { + note(N_ERROR, "xunlink: malloc failed: errno %d (%s)", + errno, strerror(errno)); + return; + } + sprintf (tozap, "%s/%s", path, host); - if (!check || !nlist_gethost(rtnl, host, 0)) { - if (unlink (tozap) == -1) - note (N_ERROR, "unlink (%s): %s", tozap, strerror (errno)); - else - dprintf (N_DEBUG, "Unlinked %s", tozap); - } - else - dprintf (N_DEBUG, "Not unlinking %s--host still monitored.", tozap); + if (unlink (tozap) == -1) + note(N_ERROR, "unlink (%s): %s", tozap, strerror (errno)); + else + dprintf (N_DEBUG, "Unlinked %s", tozap); + + free(tozap); }