* [Qemu-devel] [PATCH] slirp 64-bit fixes
@ 2005-05-17 8:57 Gwenole Beauchesne
2005-05-18 4:07 ` John Hogerhuis
2005-05-20 3:07 ` Adrian Smarzewski
0 siblings, 2 replies; 5+ messages in thread
From: Gwenole Beauchesne @ 2005-05-17 8:57 UTC (permalink / raw)
To: qemu-devel
Hi,
Here are some 64-bit fixes to slirp. Tested on x86_64 as -user-net with a
single FTP transaction. You may not need all hunks though.
2005-05-15 Gwenole Beauchesne <gbeauchesne@mandriva.com>
* Merge slirp 64-bit fixes from Basilisk II tree.
--- qemu-0.7.0/slirp/bootp.c.slirp-64bit-fixes 2005-04-27 22:52:05.000000000 +0200
+++ qemu-0.7.0/slirp/bootp.c 2005-05-17 07:29:29.000000000 +0200
@@ -238,7 +238,7 @@ static void bootp_reply(struct bootp_t *
void bootp_input(struct mbuf *m)
{
- struct bootp_t *bp = (struct bootp_t *)m->m_data;
+ struct bootp_t *bp = mtod(m, struct bootp_t *);
if (bp->bp_op == BOOTP_REQUEST) {
bootp_reply(bp);
--- qemu-0.7.0/slirp/bootp.h.slirp-64bit-fixes 2005-04-27 22:52:05.000000000 +0200
+++ qemu-0.7.0/slirp/bootp.h 2005-05-17 07:29:29.000000000 +0200
@@ -97,9 +97,9 @@ struct bootp_t {
uint8_t bp_htype;
uint8_t bp_hlen;
uint8_t bp_hops;
- unsigned long bp_xid;
- unsigned short bp_secs;
- unsigned short unused;
+ uint32_t bp_xid;
+ uint16_t bp_secs;
+ uint16_t unused;
struct in_addr bp_ciaddr;
struct in_addr bp_yiaddr;
struct in_addr bp_siaddr;
--- qemu-0.7.0/slirp/ip_icmp.h.slirp-64bit-fixes 2005-04-27 22:52:05.000000000 +0200
+++ qemu-0.7.0/slirp/ip_icmp.h 2005-05-17 07:29:29.000000000 +0200
@@ -83,8 +83,8 @@ struct icmp {
struct ip idi_ip;
/* options and then 64 bits of data */
} id_ip;
- u_long id_mask;
- char id_data[1];
+ uint32_t id_mask;
+ char id_data[1];
} icmp_dun;
#define icmp_otime icmp_dun.id_ts.its_otime
#define icmp_rtime icmp_dun.id_ts.its_rtime
--- qemu-0.7.0/slirp/libslirp.h.slirp-64bit-fixes 2005-04-27 22:52:05.000000000 +0200
+++ qemu-0.7.0/slirp/libslirp.h 2005-05-17 07:29:29.000000000 +0200
@@ -9,6 +9,10 @@ int inet_aton(const char *cp, struct in_
#include <arpa/inet.h>
#endif
+#ifdef __cplusplus
+extern "C" {
+#endif
+
void slirp_init(void);
void slirp_select_fill(int *pnfds,
@@ -29,4 +33,8 @@ int slirp_add_exec(int do_pty, const cha
extern const char *tftp_prefix;
+#ifdef __cplusplus
+}
+#endif
+
#endif
--- qemu-0.7.0/slirp/udp.c.slirp-64bit-fixes 2005-04-27 22:52:05.000000000 +0200
+++ qemu-0.7.0/slirp/udp.c 2005-05-17 07:29:29.000000000 +0200
@@ -420,10 +420,16 @@ struct talk_request {
#endif
struct cu_header {
- char dest[8];
- short family;
- u_short port;
- u_long addr;
+ uint16_t d_family; // destination family
+ uint16_t d_port; // destination port
+ uint32_t d_addr; // destination address
+ uint16_t s_family; // source family
+ uint16_t s_port; // source port
+ uint32_t s_addr; // source address
+ uint32_t seqn; // sequence number
+ uint16_t message; // message
+ uint16_t data_type; // data type
+ uint16_t pkt_len; // packet length
} *cu_head;
switch(so->so_emu) {
@@ -610,8 +616,8 @@ struct cu_header {
if (getsockname(so->s, (struct sockaddr *)&addr, &addrlen) < 0)
return;
cu_head = mtod(m, struct cu_header *);
- cu_head->port = addr.sin_port;
- cu_head->addr = (u_long) our_addr.s_addr;
+ cu_head->s_port = addr.sin_port;
+ cu_head->s_addr = our_addr.s_addr;
}
return;
--- qemu-0.7.0/slirp/udp.h.slirp-64bit-fixes 2005-04-27 22:52:05.000000000 +0200
+++ qemu-0.7.0/slirp/udp.h 2005-05-17 07:29:29.000000000 +0200
@@ -94,6 +94,7 @@ struct udpstat {
extern struct udpstat udpstat;
extern struct socket udb;
+struct mbuf;
void udp_init _P((void));
void udp_input _P((register struct mbuf *, int));
--- qemu-0.7.0/slirp/slirp_config.h.slirp-64bit-fixes 2005-04-27 22:52:05.000000000 +0200
+++ qemu-0.7.0/slirp/slirp_config.h 2005-05-17 08:00:23.000000000 +0200
@@ -85,9 +85,6 @@
/* Define if you have sys/bitypes.h */
#undef HAVE_SYS_BITYPES_H
-/* Define if the machine is big endian */
-//#undef WORDS_BIGENDIAN
-
/* Define if your sprintf returns char * instead of int */
#undef BAD_SPRINTF
@@ -139,19 +136,6 @@
/* Define if you don't have u_int32_t etc. typedef'd */
#undef NEED_TYPEDEFS
-/* Define to sizeof(char) */
-#define SIZEOF_CHAR 1
-
-/* Define to sizeof(short) */
-#define SIZEOF_SHORT 2
-
-/* Define to sizeof(int) */
-#define SIZEOF_INT 4
-
-/* Define to sizeof(char *) */
-/* XXX: patch it */
-#define SIZEOF_CHAR_P 4
-
/* Define if you have random() */
#undef HAVE_RANDOM
--- qemu-0.7.0/configure.slirp-64bit-fixes 2005-05-17 07:05:18.000000000 +0200
+++ qemu-0.7.0/configure 2005-05-17 08:04:55.000000000 +0200
@@ -614,6 +614,36 @@ if [ "$bsd" = "yes" ] ; then
echo "#define _BSD 1" >> $config_h
fi
+# detect type sizes for slirp
+for type in char short int char_p; do
+ case $type in
+ *_p) c_type="`echo $type | sed -e 's/_p//'` *";;
+ *) c_type=$type;;
+ esac
+ d_type="SIZEOF_`echo $type | tr '[:lower:]' '[:upper:]'`"
+ d_size=
+ for size in 1 2 4 8 16; do
+ cat >$TMPC << EOF
+int main(void)
+{
+ static int test_array[1 - 2 * !(((long)(sizeof($c_type))) == $size)];
+ test_array[0] = 0;
+ return 0;
+}
+EOF
+ if $cc -o $TMPO -c $TMPC 2>/dev/null; then
+ d_size=$size
+ break;
+ fi
+ done
+ rm -f $TMPC $TMPO $TMPE
+ if test -n "$d_size"; then
+ echo "#define $d_type $d_size" >> $config_h
+ else
+ echo "#error \"undefined $d_type\"" >> $config_h
+ fi
+done
+
for target in $target_list; do
target_dir="$target"
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH] slirp 64-bit fixes
2005-05-17 8:57 [Qemu-devel] [PATCH] slirp 64-bit fixes Gwenole Beauchesne
@ 2005-05-18 4:07 ` John Hogerhuis
2005-05-18 23:01 ` Tim
2005-05-20 3:07 ` Adrian Smarzewski
1 sibling, 1 reply; 5+ messages in thread
From: John Hogerhuis @ 2005-05-18 4:07 UTC (permalink / raw)
To: qemu-devel
Curious if the patches to slirp are being forwarded upstream to the
current slirp maintainer.
I wonder if he even knows QEMU uses it?
http://lists.sourceforge.net/lists/listinfo/slirp-devel
-- John.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH] slirp 64-bit fixes
2005-05-18 4:07 ` John Hogerhuis
@ 2005-05-18 23:01 ` Tim
2005-05-19 7:08 ` John Hogerhuis
0 siblings, 1 reply; 5+ messages in thread
From: Tim @ 2005-05-18 23:01 UTC (permalink / raw)
To: jhoger, qemu-devel
> Curious if the patches to slirp are being forwarded upstream to the
> current slirp maintainer.
I found a number of security holes in slirp before, and tried to notify
them. I found the package isn't being maintained anymore.
tim
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH] slirp 64-bit fixes
2005-05-18 23:01 ` Tim
@ 2005-05-19 7:08 ` John Hogerhuis
0 siblings, 0 replies; 5+ messages in thread
From: John Hogerhuis @ 2005-05-19 7:08 UTC (permalink / raw)
To: qemu-devel
On 5/18/05, Tim <tim-qemu@sentinelchicken.org> wrote:
> I found a number of security holes in slirp before, and tried to notify
> them. I found the package isn't being maintained anymore.
>
I contacted the current maintainer, and he said the package needs a
new maintainer. I advised him to make a note of this on his webpage
since this is not mentioned, hopefully he'll find someone.
If anyone is interested in taking over maintenance of standalone
Slirp, contact Kelly Price: tygris _at_ cablespeed "dot" com.
-- John.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH] slirp 64-bit fixes
2005-05-17 8:57 [Qemu-devel] [PATCH] slirp 64-bit fixes Gwenole Beauchesne
2005-05-18 4:07 ` John Hogerhuis
@ 2005-05-20 3:07 ` Adrian Smarzewski
1 sibling, 0 replies; 5+ messages in thread
From: Adrian Smarzewski @ 2005-05-20 3:07 UTC (permalink / raw)
To: qemu-devel
Gwenole Beauchesne wrote:
> Hi,
>
> Here are some 64-bit fixes to slirp. Tested on x86_64 as -user-net with a
> single FTP transaction. You may not need all hunks though.
>
> 2005-05-15 Gwenole Beauchesne <gbeauchesne@mandriva.com>
>
> * Merge slirp 64-bit fixes from Basilisk II tree.
>
Everything is working! Thanks!!!
Fabrice, you should commit it to cvs.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2005-05-20 3:14 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-05-17 8:57 [Qemu-devel] [PATCH] slirp 64-bit fixes Gwenole Beauchesne
2005-05-18 4:07 ` John Hogerhuis
2005-05-18 23:01 ` Tim
2005-05-19 7:08 ` John Hogerhuis
2005-05-20 3:07 ` Adrian Smarzewski
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).