In case of error, the function genlmsg_put() returns NULL pointer not ERR_PTR(). The IS_ERR() test in the return value check should be replaced with NULL test. dpatch engine is used to auto generate this patch. (https://github.com/weiyj/dpatch)
Unified · Split
| @@ -1653,8 +1653,8 @@ static int team_nl_cmd_noop(struct sk_buff *skb, struct genl_info *info) · 1652 unmodified lines | ||
| 1653 | 1653 | |
| 1654 | 1654 | hdr = genlmsg_put(msg, info->snd_pid, info->snd_seq, |
| 1655 | 1655 | &team_nl_family, 0, TEAM_CMD_NOOP); |
| 1656 | − if (IS_ERR(hdr)) { | |
| 1657 | − err = PTR_ERR(hdr); | |
| 1656 | + if (!hdr) { | |
| 1657 | + err = -EMSGSIZE; | |
| 1658 | 1658 | goto err_msg_put; |
| 1659 | 1659 | } |
| 1660 | 1660 | |
| @@ -1848,8 +1848,8 @@ start_again: · 187 unmodified lines | ||
| 1848 | 1848 | |
| 1849 | 1849 | hdr = genlmsg_put(skb, pid, seq, &team_nl_family, flags | NLM_F_MULTI, |
| 1850 | 1850 | TEAM_CMD_OPTIONS_GET); |
| 1851 | − if (IS_ERR(hdr)) | |
| 1852 | − return PTR_ERR(hdr); | |
| 1851 | + if (!hdr) | |
| 1852 | + return -EMSGSIZE; | |
| 1853 | 1853 | |
| 1854 | 1854 | if (nla_put_u32(skb, TEAM_ATTR_TEAM_IFINDEX, team->dev->ifindex)) |
| 1855 | 1855 | goto nla_put_failure; |
| @@ -2068,8 +2068,8 @@ static int team_nl_fill_port_list_get(struct sk_buff *skb, · 212 unmodified lines | ||
| 2068 | 2068 | |
| 2069 | 2069 | hdr = genlmsg_put(skb, pid, seq, &team_nl_family, flags, |
| 2070 | 2070 | TEAM_CMD_PORT_LIST_GET); |
| 2071 | − if (IS_ERR(hdr)) | |
| 2072 | − return PTR_ERR(hdr); | |
| 2071 | + if (!hdr) | |
| 2072 | + return -EMSGSIZE; | |
| 2073 | 2073 | |
| 2074 | 2074 | if (nla_put_u32(skb, TEAM_ATTR_TEAM_IFINDEX, team->dev->ifindex)) |
| 2075 | 2075 | goto nla_put_failure; |