slirp: fix big/little endian conversion in ident protocol
authorSamuel Thibault <samuel.thibault@ens-lyon.org>
Sat, 2 Mar 2019 02:23:41 +0000 (18:23 -0800)
committerSamuel Thibault <samuel.thibault@ens-lyon.org>
Wed, 6 Mar 2019 22:36:22 +0000 (23:36 +0100)
Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
Based-on: <1551476756-25749-1-git-send-email-will@wbowling.info>

slirp/tcp_subr.c

index ef9d99c154cbbfcdea744d0b06954ee37e61edf5..1d7e72dca75e426bea8f7957d7f1fbc57a142b57 100644 (file)
@@ -660,10 +660,12 @@ tcp_emu(struct socket *so, struct mbuf *m)
                                                    tmpso->so_fport == n1) {
                                                        if (getsockname(tmpso->s,
                                                                (struct sockaddr *)&addr, &addrlen) == 0)
-                                                          n2 = ntohs(addr.sin_port);
+                                                          n2 = addr.sin_port;
                                                        break;
                                                }
                                        }
+                                       NTOHS(n1);
+                                       NTOHS(n2);
                                        so_rcv->sb_cc = snprintf(so_rcv->sb_data,
                                                                 so_rcv->sb_datalen,
                                                                 "%d,%d\r\n", n1, n2);