When the list of head is empty, no error return code of smc_diag_dump_proto() is assigned. To fix this bug, rc is assigned with -ENOENT as error return code. Reported-by: TOTE Robot <oslab@xxxxxxxxxxxxxxx> Signed-off-by: Jia-Ju Bai <baijiaju1990@xxxxxxxxx> --- net/smc/smc_diag.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/net/smc/smc_diag.c b/net/smc/smc_diag.c index c952986a6aca..a90889482842 100644 --- a/net/smc/smc_diag.c +++ b/net/smc/smc_diag.c @@ -201,8 +201,10 @@ static int smc_diag_dump_proto(struct proto *prot, struct sk_buff *skb, read_lock(&prot->h.smc_hash->lock); head = &prot->h.smc_hash->ht; - if (hlist_empty(head)) + if (hlist_empty(head)) { + rc = -ENOENT; goto out; + } sk_for_each(sk, head) { if (!net_eq(sock_net(sk), net)) -- 2.17.1