From: Davidlohr Bueso Date: Tue, 30 Jun 2015 21:58:48 +0000 (-0700) Subject: ipc,sysv: return -EINVAL upon incorrect id/seqnum X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=6157dbbfbf9d8e4a2b6d4e5ee35e864ab9ee8414;p=sagit-ice-cold%2Fkernel_xiaomi_msm8998.git ipc,sysv: return -EINVAL upon incorrect id/seqnum In ipc_obtain_object_check we return -EIDRM when a bogus sequence number is detected via ipc_checkid, while the ipc manpages state the following return codes for such errors: EIDRM points to a removed identifier. EINVAL Invalid value, or unaligned, etc. EIDRM should only be returned upon a RMID call (->deleted check), and thus return EINVAL for wrong seq. This difference in semantics has also caused real bugs, ie: https://bugzilla.redhat.com/show_bug.cgi?id=246509 Signed-off-by: Davidlohr Bueso Cc: Manfred Spraul Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/ipc/util.c b/ipc/util.c index b99038699fee..be4230020a1f 100644 --- a/ipc/util.c +++ b/ipc/util.c @@ -622,7 +622,7 @@ struct kern_ipc_perm *ipc_obtain_object_check(struct ipc_ids *ids, int id) goto out; if (ipc_checkid(out, id)) - return ERR_PTR(-EIDRM); + return ERR_PTR(-EINVAL); out: return out; }