DF-0808 / fix.diff
diff --git a/sys/vfs/dirfs/dirfs_vnops.c b/sys/vfs/dirfs/dirfs_vnops.c --- a/sys/vfs/dirfs/dirfs_vnops.c +++ b/sys/vfs/dirfs/dirfs_vnops.c @@ -978,9 +978,13 @@ tncp->nc_name, &tpathfree); fpath = dirfs_node_absolute_path_plus(dmp, fdnp, fncp->nc_name, &fpathfree); - error = rename(fpath, tpath); - if (error < 0) - error = errno; + if (fpath == NULL || tpath == NULL) { + error = ENAMETOOLONG; + } else { + error = rename(fpath, tpath); + if (error < 0) + error = errno; + } if (error == 0) { vp = fncp->nc_vp; /* file being renamed */ dnp = VP_TO_NODE(vp); |