diff options
Diffstat (limited to 'libnetfs/dir-mkfile.c')
-rw-r--r-- | libnetfs/dir-mkfile.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/libnetfs/dir-mkfile.c b/libnetfs/dir-mkfile.c index 16c5dd77..7d388737 100644 --- a/libnetfs/dir-mkfile.c +++ b/libnetfs/dir-mkfile.c @@ -44,9 +44,17 @@ netfs_S_dir_mkfile (struct protid *diruser, int flags, mode_t mode, newpi = netfs_make_protid (netfs_make_peropen (np, flags, diruser->po), user); - *newfile = ports_get_right (newpi); - *newfiletype = MACH_MSG_TYPE_MAKE_SEND; - ports_port_deref (newpi); + if (newpi) + { + *newfile = ports_get_right (newpi); + *newfiletype = MACH_MSG_TYPE_MAKE_SEND; + ports_port_deref (newpi); + } + else + { + err = errno; + iohelp_free_iouser (user); + } } netfs_nput (np); } |