diff options
| -rw-r--r-- | source4/ntvfs/posix/pvfs_open.c | 16 | 
1 files changed, 12 insertions, 4 deletions
diff --git a/source4/ntvfs/posix/pvfs_open.c b/source4/ntvfs/posix/pvfs_open.c index 0d97b3d629..3a8b17ab16 100644 --- a/source4/ntvfs/posix/pvfs_open.c +++ b/source4/ntvfs/posix/pvfs_open.c @@ -1461,8 +1461,10 @@ NTSTATUS pvfs_can_delete(struct pvfs_state *pvfs,  		}  	} else if (!NT_STATUS_IS_OK(status)) {  		talloc_free(lck); -		*lckp = lck; -	} else if (lckp != NULL) { +		if (lckp) { +			*lckp = NULL; +		} +	} else if (lckp) {  		*lckp = lck;  	} @@ -1513,8 +1515,10 @@ NTSTATUS pvfs_can_rename(struct pvfs_state *pvfs,  		}  	} else if (!NT_STATUS_IS_OK(status)) {  		talloc_free(lck); -		*lckp = lck; -	} else if (lckp != NULL) { +		if (lckp) { +			*lckp = NULL; +		} +	} else if (lckp) {  		*lckp = lck;  	} @@ -1549,6 +1553,10 @@ NTSTATUS pvfs_can_stat(struct pvfs_state *pvfs,  			      NTCREATEX_SHARE_ACCESS_WRITE,  			      0, 0); +	if (!NT_STATUS_IS_OK(status)) { +		talloc_free(lck); +	} +  	return status;  }  | 
