diff options
| author | Jerry Jelinek <jerry.jelinek@joyent.com> | 2017-01-17 12:31:48 +0000 |
|---|---|---|
| committer | Jerry Jelinek <jerry.jelinek@joyent.com> | 2017-01-17 12:31:48 +0000 |
| commit | 0603ae010d9d9ffebdc0aceb7ceb862684364539 (patch) | |
| tree | 5086e5931b9e5320fd707bc88be6b3a38d1d9ce6 | |
| parent | 70258efd7c8fc86cc2d1e081256b5e5edbdf7ec7 (diff) | |
| parent | f9566879968c5f87f0a51f1a4e41fbb2ce4f5fd8 (diff) | |
| download | illumos-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.c | 3 | ||||
| -rw-r--r-- | usr/src/uts/common/fs/nfs/nfs4_srv.c | 7 |
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); |
