--- sbin/umount/umount.c 2018-05-13 22:12:26.559296913 +0200 +++ sbin/umount/umount.c.patched 2018-06-14 21:37:26.184059803 +0200 @@ -407,6 +407,7 @@ } if (!namematch(ai)) { + freeaddrinfo(ai); free(orignfsdirname); return (1); } @@ -419,6 +420,7 @@ sfs->f_fsid.val[1] != 0) warn("unmount of %s failed", sfs->f_mntonname); if (errno != ENOENT) { + freeaddrinfo(ai); free(orignfsdirname); return (1); } @@ -427,6 +429,7 @@ warnx("retrying using path instead of file system ID"); if (unmount(sfs->f_mntonname, fflag) != 0) { warn("unmount of %s failed", sfs->f_mntonname); + freeaddrinfo(ai); free(orignfsdirname); return (1); } @@ -445,6 +448,7 @@ if (clp == NULL) { warnx("%s: %s", hostp, clnt_spcreateerror("MOUNTPROG")); + freeaddrinfo(ai); free(orignfsdirname); return (1); } @@ -456,6 +460,7 @@ if (clnt_stat != RPC_SUCCESS) { warnx("%s: %s", hostp, clnt_sperror(clp, "RPCMNT_UMOUNT")); + freeaddrinfo(ai); free(orignfsdirname); return (1); } @@ -472,6 +477,7 @@ auth_destroy(clp->cl_auth); clnt_destroy(clp); } + freeaddrinfo(ai); free(orignfsdirname); return (0); }