net: sctp: Move sequence start handling into sctp_transport_get_idx()
authorGeert Uytterhoeven <geert@linux-m68k.org>
Fri, 15 Jan 2016 13:44:31 +0000 (14:44 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 15 Jan 2016 20:11:55 +0000 (15:11 -0500)
net/sctp/proc.c: In function ‘sctp_transport_get_idx’:
net/sctp/proc.c:313: warning: ‘obj’ may be used uninitialized in this function

This is currently a false positive, as all callers check for a zero
offset first, and handle this case in the exact same way.

Move the check and handling into sctp_transport_get_idx() to kill the
compiler warning, and avoid future bugs.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sctp/proc.c

index dfa7eeccb5373053f460f1026a58e4a2ba015a69..684c5b31563badc1f097434211422f495d356aad 100644 (file)
@@ -310,7 +310,7 @@ static struct sctp_transport *sctp_transport_get_next(struct seq_file *seq)
 static struct sctp_transport *sctp_transport_get_idx(struct seq_file *seq,
                                                     loff_t pos)
 {
-       void *obj;
+       void *obj = SEQ_START_TOKEN;
 
        while (pos && (obj = sctp_transport_get_next(seq)) && !IS_ERR(obj))
                pos--;
@@ -347,7 +347,7 @@ static void *sctp_assocs_seq_start(struct seq_file *seq, loff_t *pos)
        if (err)
                return ERR_PTR(err);
 
-       return *pos ? sctp_transport_get_idx(seq, *pos) : SEQ_START_TOKEN;
+       return sctp_transport_get_idx(seq, *pos);
 }
 
 static void sctp_assocs_seq_stop(struct seq_file *seq, void *v)
@@ -462,7 +462,7 @@ static void *sctp_remaddr_seq_start(struct seq_file *seq, loff_t *pos)
        if (err)
                return ERR_PTR(err);
 
-       return *pos ? sctp_transport_get_idx(seq, *pos) : SEQ_START_TOKEN;
+       return sctp_transport_get_idx(seq, *pos);
 }
 
 static void *sctp_remaddr_seq_next(struct seq_file *seq, void *v, loff_t *pos)