From: Vlad Yasevich Date: Tue, 17 Jan 2006 19:54:06 +0000 (-0800) Subject: [SCTP]: Fix sctp_assoc_seq_show() panics on big-endian systems. X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=38b0e42aba928d9929a26ec23b850c36a31fca5f;p=GitHub%2FLineageOS%2Fandroid_kernel_samsung_universal7580.git [SCTP]: Fix sctp_assoc_seq_show() panics on big-endian systems. This patch corrects the panic by casting the argument to the pointer of correct size. On big-endian systems we ended up loading only 32 bits of data because we are treating the pointer as an int*. By treating this pointer as loff_t*, we'll load the full 64 bits and then let regular integer demotion take place which will give us the correct value. Signed-off-by: Vlad Yaseivch Signed-off-by: Sridhar Samudrala --- diff --git a/net/sctp/proc.c b/net/sctp/proc.c index 1b5e5b119f7..d47a52c303a 100644 --- a/net/sctp/proc.c +++ b/net/sctp/proc.c @@ -210,7 +210,7 @@ static int sctp_eps_seq_show(struct seq_file *seq, void *v) struct sctp_ep_common *epb; struct sctp_endpoint *ep; struct sock *sk; - int hash = *(int *)v; + int hash = *(loff_t *)v; if (hash >= sctp_ep_hashsize) return -ENOMEM; @@ -313,7 +313,7 @@ static int sctp_assocs_seq_show(struct seq_file *seq, void *v) struct sctp_ep_common *epb; struct sctp_association *assoc; struct sock *sk; - int hash = *(int *)v; + int hash = *(loff_t *)v; if (hash >= sctp_assoc_hashsize) return -ENOMEM;