summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJerry Jelinek <jerry.jelinek@joyent.com>2017-01-17 12:31:48 +0000
committerJerry Jelinek <jerry.jelinek@joyent.com>2017-01-17 12:31:48 +0000
commit0603ae010d9d9ffebdc0aceb7ceb862684364539 (patch)
tree5086e5931b9e5320fd707bc88be6b3a38d1d9ce6
parent70258efd7c8fc86cc2d1e081256b5e5edbdf7ec7 (diff)
parentf9566879968c5f87f0a51f1a4e41fbb2ce4f5fd8 (diff)
downloadillumos-joyent-0603ae010d9d9ffebdc0aceb7ceb862684364539.tar.gz
[illumos-gate merge]
commit f9566879968c5f87f0a51f1a4e41fbb2ce4f5fd8 7772 boot1.efi Free() should check for NULL commit 77e6f23f311b4352dcc27ce2fcbd2c06546ce837 7693 pynfs: OPEN4 st_open.testCreatExclusiveFile FAILURE
-rw-r--r--usr/src/boot/sys/boot/efi/boot1/boot1.c3
-rw-r--r--usr/src/uts/common/fs/nfs/nfs4_srv.c7
2 files changed, 6 insertions, 4 deletions
diff --git a/usr/src/boot/sys/boot/efi/boot1/boot1.c b/usr/src/boot/sys/boot/efi/boot1/boot1.c
index 7d92f2a765..fb7c81aba9 100644
--- a/usr/src/boot/sys/boot/efi/boot1/boot1.c
+++ b/usr/src/boot/sys/boot/efi/boot1/boot1.c
@@ -83,7 +83,8 @@ Malloc(size_t len, const char *file __unused, int line __unused)
void
Free(void *buf, const char *file __unused, int line __unused)
{
- (void)bs->FreePool(buf);
+ if (buf != NULL)
+ (void)bs->FreePool(buf);
}
/*
diff --git a/usr/src/uts/common/fs/nfs/nfs4_srv.c b/usr/src/uts/common/fs/nfs/nfs4_srv.c
index 700bd249af..0865deb91d 100644
--- a/usr/src/uts/common/fs/nfs/nfs4_srv.c
+++ b/usr/src/uts/common/fs/nfs/nfs4_srv.c
@@ -6163,7 +6163,7 @@ rfs4_lookupfile(component4 *component, struct svc_req *req,
static nfsstat4
create_vnode(vnode_t *dvp, char *nm, vattr_t *vap, createmode4 mode,
- timespec32_t *mtime, cred_t *cr, vnode_t **vpp, bool_t *created)
+ cred_t *cr, vnode_t **vpp, bool_t *created)
{
int error;
nfsstat4 status = NFS4_OK;
@@ -6233,11 +6233,12 @@ tryagain:
}
/* Check for duplicate request */
- ASSERT(mtime != 0);
va.va_mask = AT_MTIME;
error = VOP_GETATTR(*vpp, &va, 0, cr, NULL);
if (!error) {
/* We found the file */
+ const timestruc_t *mtime = &vap->va_mtime;
+
if (va.va_mtime.tv_sec != mtime->tv_sec ||
va.va_mtime.tv_nsec != mtime->tv_nsec) {
/* but its not our creation */
@@ -6472,7 +6473,7 @@ rfs4_createfile(OPEN4args *args, struct svc_req *req, struct compound_state *cs,
return (NFS4ERR_SERVERFAULT);
}
- status = create_vnode(dvp, name, vap, args->mode, mtime,
+ status = create_vnode(dvp, name, vap, args->mode,
cs->cr, &vp, &created);
if (nm != name)
kmem_free(name, MAXPATHLEN + 1);