Skip to content

Commit 740a810

Browse files
ISCAS-VulabNipaLocal
authored andcommitted
net: af_key: Add error check in set_sadb_address()
The function set_sadb_address() calls the function pfkey_sockaddr_fill(), but does not check its return value. A proper implementation can be found in set_sadb_kmaddress(). Add an error check for set_sadb_address(), return error code if the function fails. Fixes: e5b5665 ("key: Share common code path to fill sockaddr{}.") Cc: stable@vger.kernel.org # v2.6 Signed-off-by: Wentao Liang <vulab@iscas.ac.cn> Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com> Signed-off-by: NipaLocal <nipa@local>
1 parent 824be6c commit 740a810

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

net/key/af_key.c

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3474,15 +3474,17 @@ static int set_sadb_address(struct sk_buff *skb, int sasize, int type,
34743474
switch (type) {
34753475
case SADB_EXT_ADDRESS_SRC:
34763476
addr->sadb_address_prefixlen = sel->prefixlen_s;
3477-
pfkey_sockaddr_fill(&sel->saddr, 0,
3478-
(struct sockaddr *)(addr + 1),
3479-
sel->family);
3477+
if (!pfkey_sockaddr_fill(&sel->saddr, 0,
3478+
(struct sockaddr *)(addr + 1),
3479+
sel->family))
3480+
return -EINVAL;
34803481
break;
34813482
case SADB_EXT_ADDRESS_DST:
34823483
addr->sadb_address_prefixlen = sel->prefixlen_d;
3483-
pfkey_sockaddr_fill(&sel->daddr, 0,
3484-
(struct sockaddr *)(addr + 1),
3485-
sel->family);
3484+
if (!pfkey_sockaddr_fill(&sel->daddr, 0,
3485+
(struct sockaddr *)(addr + 1),
3486+
sel->family))
3487+
return -EINVAL;
34863488
break;
34873489
default:
34883490
return -EINVAL;

0 commit comments

Comments
 (0)