qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] Re: [PATCH] warnings in net.c
  2009-06-17 16:06 ` Filip Navara
@ 2009-06-17 16:37   ` Jan Kiszka
  2009-06-18 10:01     ` Ulrich Hecht
  2009-06-18  9:56   ` [Qemu-devel] " Ulrich Hecht
  1 sibling, 1 reply; 11+ messages in thread
From: Jan Kiszka @ 2009-06-17 16:37 UTC (permalink / raw)
  To: Filip Navara; +Cc: qemu-devel

Filip Navara wrote:
> On Wed, Jun 17, 2009 at 5:47 PM, Ulrich Hecht <uli@suse.de> wrote:
> 
>> removes unused slirp code and initializes ret in net_client_init()
>>
>> Signed-off-by: Ulrich Hecht <uli@suse.de>
> 
> 
> It is definitely not unused when CONFIG_SLIRP is defined. I'm damn sure I
> use the code and that I was debugging it two days ago.

Right, the patch is incorrect. And even with --disable-slirp, it builds
fine for me as-is. Ulrich, what is your setup (configure parameters etc.)?

Also, the ret initialization appears to be unneeded on first glance. No
compiler around has a problem with it. What is your version / setup
here? And more important: What path requires the initialization (because
it remains unclear if ret=0 is the correct until we know the precise case).

Jan

-- 
Siemens AG, Corporate Technology, CT SE 2
Corporate Competence Center Embedded Linux

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Qemu-devel] Re: [PATCH] warnings in net.c
  2009-06-17 16:37   ` [Qemu-devel] " Jan Kiszka
@ 2009-06-18 10:01     ` Ulrich Hecht
  0 siblings, 0 replies; 11+ messages in thread
From: Ulrich Hecht @ 2009-06-18 10:01 UTC (permalink / raw)
  To: Jan Kiszka; +Cc: qemu-devel

On Wednesday 17 June 2009, Jan Kiszka wrote:
> Also, the ret initialization appears to be unneeded on first glance.
> No compiler around has a problem with it. What is your version / setup 
> here? And more important: What path requires the initialization
> (because it remains unclear if ret=0 is the correct until we know the
> precise case).

Honestly, I can't reproduce it. I guess this whole thing is bogus after 
all. I shouldn't get up before 11 AM any more...

CU
Uli

-- 
Heute ist
- Tag der Aussiedlung (in Ägypten)

SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg)

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Qemu-devel] Re: [PATCH] warnings in net.c
  2009-06-18  9:56   ` [Qemu-devel] " Ulrich Hecht
@ 2009-06-18 18:31     ` Jan Kiszka
  0 siblings, 0 replies; 11+ messages in thread
From: Jan Kiszka @ 2009-06-18 18:31 UTC (permalink / raw)
  To: Ulrich Hecht; +Cc: Filip Navara, qemu-devel

[-- Attachment #1: Type: text/plain, Size: 772 bytes --]

Ulrich Hecht wrote:
> On Wednesday 17 June 2009, Filip Navara wrote:
>> On Wed, Jun 17, 2009 at 5:47 PM, Ulrich Hecht <uli@suse.de> wrote:
>>> removes unused slirp code and initializes ret in net_client_init()
>>>
>>> Signed-off-by: Ulrich Hecht <uli@suse.de>
>> It is definitely not unused when CONFIG_SLIRP is defined. I'm damn
>> sure I use the code and that I was debugging it two days ago.
> 
> Er, yes, now that you mention it... I even grepped for net_client_init, 
> but I didn't find it.
> 
> Still, it dies thanks to -Werror with a plain "./configure". I guess 
> framing it with #ifdef CONFIG_SLIRP will do.

It _is_ already framed, and it _does_ build flawlessly with
--disable-slirp here. You must be looking at a different version.

Jan


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 257 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH 0/4] linux-user syscall bugs
@ 2009-07-03 15:09 Ulrich Hecht
  2009-07-03 15:09 ` [Qemu-devel] [PATCH 1/4] pipe argument should not be signed Ulrich Hecht
  0 siblings, 1 reply; 11+ messages in thread
From: Ulrich Hecht @ 2009-07-03 15:09 UTC (permalink / raw)
  To: qemu-devel

Couple of bugs I ran into while implementing the S/390 target.

Ulrich Hecht (4):
  pipe argument should not be signed
  64-bit clean socketcall syscall
  wrap path for access syscall
  getrlimit conversion mix-up

 linux-user/syscall.c |  138 +++++++++++++++++++++++++-------------------------
 1 files changed, 69 insertions(+), 69 deletions(-)

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH 1/4] pipe argument should not be signed
  2009-07-03 15:09 [Qemu-devel] [PATCH 0/4] linux-user syscall bugs Ulrich Hecht
@ 2009-07-03 15:09 ` Ulrich Hecht
  2009-07-03 15:09   ` [Qemu-devel] [PATCH] warnings in net.c Ulrich Hecht
  0 siblings, 1 reply; 11+ messages in thread
From: Ulrich Hecht @ 2009-07-03 15:09 UTC (permalink / raw)
  To: qemu-devel

pipedes is an address, it should not be signed (breaks for addresses
> 0x80000000)

Signed-off-by: Ulrich Hecht <uli@suse.de>
---
 linux-user/syscall.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 11564fd..57bb9a7 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -953,7 +953,7 @@ static abi_long do_pipe2(int host_pipe[], int flags)
 #endif
 }
 
-static abi_long do_pipe(void *cpu_env, int pipedes, int flags)
+static abi_long do_pipe(void *cpu_env, abi_ulong pipedes, int flags)
 {
     int host_pipe[2];
     abi_long ret;
-- 
1.6.2.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH] warnings in net.c
  2009-07-03 15:09 ` [Qemu-devel] [PATCH 1/4] pipe argument should not be signed Ulrich Hecht
@ 2009-07-03 15:09   ` Ulrich Hecht
  2009-07-03 15:09     ` [Qemu-devel] [PATCH 2/4] 64-bit clean socketcall syscall Ulrich Hecht
  2009-07-03 15:10     ` [Qemu-devel] Re: [PATCH] warnings in net.c Ulrich Hecht
  0 siblings, 2 replies; 11+ messages in thread
From: Ulrich Hecht @ 2009-07-03 15:09 UTC (permalink / raw)
  To: qemu-devel

removes unused slirp code and initializes ret in net_client_init()

Signed-off-by: Ulrich Hecht <uli@suse.de>
---
 net.c |   51 +--------------------------------------------------
 1 files changed, 1 insertions(+), 50 deletions(-)

diff --git a/net.c b/net.c
index af9de73..91976b9 100644
--- a/net.c
+++ b/net.c
@@ -691,55 +691,6 @@ int slirp_is_inited(void)
     return slirp_inited;
 }
 
-static ssize_t slirp_receive(VLANClientState *vc, const uint8_t *buf, size_t size)
-{
-#ifdef DEBUG_SLIRP
-    printf("slirp input:\n");
-    hex_dump(stdout, buf, size);
-#endif
-    slirp_input(buf, size);
-    return size;
-}
-
-static int slirp_in_use;
-
-static void net_slirp_cleanup(VLANClientState *vc)
-{
-    slirp_in_use = 0;
-}
-
-static int net_slirp_init(VLANState *vlan, const char *model, const char *name,
-                          int restricted, const char *ip)
-{
-    if (slirp_in_use) {
-        /* slirp only supports a single instance so far */
-        return -1;
-    }
-    if (!slirp_inited) {
-        slirp_inited = 1;
-        slirp_init(restricted, ip);
-
-        while (slirp_redirs) {
-            struct slirp_config_str *config = slirp_redirs;
-
-            slirp_redirection(NULL, config->str);
-            slirp_redirs = config->next;
-            qemu_free(config);
-        }
-#ifndef _WIN32
-        if (slirp_smb_export) {
-            slirp_smb(slirp_smb_export);
-        }
-#endif
-    }
-
-    slirp_vc = qemu_new_vlan_client(vlan, model, name, NULL, slirp_receive,
-                                    NULL, net_slirp_cleanup, NULL);
-    slirp_vc->info_str[0] = '\0';
-    slirp_in_use = 1;
-    return 0;
-}
-
 static void net_slirp_redir_print(void *opaque, int is_udp,
                                   struct in_addr *laddr, u_int lport,
                                   struct in_addr *faddr, u_int fport)
@@ -2088,7 +2039,7 @@ int net_client_init(Monitor *mon, const char *device, const char *p)
         "vlan", "name", "fd", NULL
     };
     char buf[1024];
-    int vlan_id, ret;
+    int vlan_id, ret = 0;
     VLANState *vlan;
     char *name = NULL;
 
-- 
1.6.2.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH 2/4] 64-bit clean socketcall syscall
  2009-07-03 15:09   ` [Qemu-devel] [PATCH] warnings in net.c Ulrich Hecht
@ 2009-07-03 15:09     ` Ulrich Hecht
  2009-07-03 15:09       ` [Qemu-devel] [PATCH 3/4] wrap path for access syscall Ulrich Hecht
  2009-07-03 15:10     ` [Qemu-devel] Re: [PATCH] warnings in net.c Ulrich Hecht
  1 sibling, 1 reply; 11+ messages in thread
From: Ulrich Hecht @ 2009-07-03 15:09 UTC (permalink / raw)
  To: qemu-devel

makes socketcall 64-bit clean so it works on 64-bit big-endian systems

Signed-off-by: Ulrich Hecht <uli@suse.de>
---
 linux-user/syscall.c |  130 +++++++++++++++++++++++++-------------------------
 1 files changed, 65 insertions(+), 65 deletions(-)

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 57bb9a7..e541b0d 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -1751,11 +1751,11 @@ static abi_long do_socketcall(int num, abi_ulong vptr)
     switch(num) {
     case SOCKOP_socket:
 	{
-            int domain, type, protocol;
+            abi_ulong domain, type, protocol;
 
-            if (get_user_s32(domain, vptr)
-                || get_user_s32(type, vptr + n)
-                || get_user_s32(protocol, vptr + 2 * n))
+            if (get_user_ual(domain, vptr)
+                || get_user_ual(type, vptr + n)
+                || get_user_ual(protocol, vptr + 2 * n))
                 return -TARGET_EFAULT;
 
             ret = do_socket(domain, type, protocol);
@@ -1763,13 +1763,13 @@ static abi_long do_socketcall(int num, abi_ulong vptr)
         break;
     case SOCKOP_bind:
 	{
-            int sockfd;
+            abi_ulong sockfd;
             abi_ulong target_addr;
             socklen_t addrlen;
 
-            if (get_user_s32(sockfd, vptr)
+            if (get_user_ual(sockfd, vptr)
                 || get_user_ual(target_addr, vptr + n)
-                || get_user_u32(addrlen, vptr + 2 * n))
+                || get_user_ual(addrlen, vptr + 2 * n))
                 return -TARGET_EFAULT;
 
             ret = do_bind(sockfd, target_addr, addrlen);
@@ -1777,13 +1777,13 @@ static abi_long do_socketcall(int num, abi_ulong vptr)
         break;
     case SOCKOP_connect:
         {
-            int sockfd;
+            abi_ulong sockfd;
             abi_ulong target_addr;
             socklen_t addrlen;
 
-            if (get_user_s32(sockfd, vptr)
+            if (get_user_ual(sockfd, vptr)
                 || get_user_ual(target_addr, vptr + n)
-                || get_user_u32(addrlen, vptr + 2 * n))
+                || get_user_ual(addrlen, vptr + 2 * n))
                 return -TARGET_EFAULT;
 
             ret = do_connect(sockfd, target_addr, addrlen);
@@ -1791,10 +1791,10 @@ static abi_long do_socketcall(int num, abi_ulong vptr)
         break;
     case SOCKOP_listen:
         {
-            int sockfd, backlog;
+            abi_ulong sockfd, backlog;
 
-            if (get_user_s32(sockfd, vptr)
-                || get_user_s32(backlog, vptr + n))
+            if (get_user_ual(sockfd, vptr)
+                || get_user_ual(backlog, vptr + n))
                 return -TARGET_EFAULT;
 
             ret = get_errno(listen(sockfd, backlog));
@@ -1802,12 +1802,12 @@ static abi_long do_socketcall(int num, abi_ulong vptr)
         break;
     case SOCKOP_accept:
         {
-            int sockfd;
+            abi_ulong sockfd;
             abi_ulong target_addr, target_addrlen;
 
-            if (get_user_s32(sockfd, vptr)
+            if (get_user_ual(sockfd, vptr)
                 || get_user_ual(target_addr, vptr + n)
-                || get_user_u32(target_addrlen, vptr + 2 * n))
+                || get_user_ual(target_addrlen, vptr + 2 * n))
                 return -TARGET_EFAULT;
 
             ret = do_accept(sockfd, target_addr, target_addrlen);
@@ -1815,12 +1815,12 @@ static abi_long do_socketcall(int num, abi_ulong vptr)
         break;
     case SOCKOP_getsockname:
         {
-            int sockfd;
+            abi_ulong sockfd;
             abi_ulong target_addr, target_addrlen;
 
-            if (get_user_s32(sockfd, vptr)
+            if (get_user_ual(sockfd, vptr)
                 || get_user_ual(target_addr, vptr + n)
-                || get_user_u32(target_addrlen, vptr + 2 * n))
+                || get_user_ual(target_addrlen, vptr + 2 * n))
                 return -TARGET_EFAULT;
 
             ret = do_getsockname(sockfd, target_addr, target_addrlen);
@@ -1828,12 +1828,12 @@ static abi_long do_socketcall(int num, abi_ulong vptr)
         break;
     case SOCKOP_getpeername:
         {
-            int sockfd;
+            abi_ulong sockfd;
             abi_ulong target_addr, target_addrlen;
 
-            if (get_user_s32(sockfd, vptr)
+            if (get_user_ual(sockfd, vptr)
                 || get_user_ual(target_addr, vptr + n)
-                || get_user_u32(target_addrlen, vptr + 2 * n))
+                || get_user_ual(target_addrlen, vptr + 2 * n))
                 return -TARGET_EFAULT;
 
             ret = do_getpeername(sockfd, target_addr, target_addrlen);
@@ -1841,12 +1841,12 @@ static abi_long do_socketcall(int num, abi_ulong vptr)
         break;
     case SOCKOP_socketpair:
         {
-            int domain, type, protocol;
+            abi_ulong domain, type, protocol;
             abi_ulong tab;
 
-            if (get_user_s32(domain, vptr)
-                || get_user_s32(type, vptr + n)
-                || get_user_s32(protocol, vptr + 2 * n)
+            if (get_user_ual(domain, vptr)
+                || get_user_ual(type, vptr + n)
+                || get_user_ual(protocol, vptr + 2 * n)
                 || get_user_ual(tab, vptr + 3 * n))
                 return -TARGET_EFAULT;
 
@@ -1855,15 +1855,15 @@ static abi_long do_socketcall(int num, abi_ulong vptr)
         break;
     case SOCKOP_send:
         {
-            int sockfd;
+            abi_ulong sockfd;
             abi_ulong msg;
             size_t len;
-            int flags;
+            abi_ulong flags;
 
-            if (get_user_s32(sockfd, vptr)
+            if (get_user_ual(sockfd, vptr)
                 || get_user_ual(msg, vptr + n)
                 || get_user_ual(len, vptr + 2 * n)
-                || get_user_s32(flags, vptr + 3 * n))
+                || get_user_ual(flags, vptr + 3 * n))
                 return -TARGET_EFAULT;
 
             ret = do_sendto(sockfd, msg, len, flags, 0, 0);
@@ -1871,15 +1871,15 @@ static abi_long do_socketcall(int num, abi_ulong vptr)
         break;
     case SOCKOP_recv:
         {
-            int sockfd;
+            abi_ulong sockfd;
             abi_ulong msg;
             size_t len;
-            int flags;
+            abi_ulong flags;
 
-            if (get_user_s32(sockfd, vptr)
+            if (get_user_ual(sockfd, vptr)
                 || get_user_ual(msg, vptr + n)
                 || get_user_ual(len, vptr + 2 * n)
-                || get_user_s32(flags, vptr + 3 * n))
+                || get_user_ual(flags, vptr + 3 * n))
                 return -TARGET_EFAULT;
 
             ret = do_recvfrom(sockfd, msg, len, flags, 0, 0);
@@ -1887,19 +1887,19 @@ static abi_long do_socketcall(int num, abi_ulong vptr)
         break;
     case SOCKOP_sendto:
         {
-            int sockfd;
+            abi_ulong sockfd;
             abi_ulong msg;
             size_t len;
-            int flags;
+            abi_ulong flags;
             abi_ulong addr;
             socklen_t addrlen;
 
-            if (get_user_s32(sockfd, vptr)
+            if (get_user_ual(sockfd, vptr)
                 || get_user_ual(msg, vptr + n)
                 || get_user_ual(len, vptr + 2 * n)
-                || get_user_s32(flags, vptr + 3 * n)
+                || get_user_ual(flags, vptr + 3 * n)
                 || get_user_ual(addr, vptr + 4 * n)
-                || get_user_u32(addrlen, vptr + 5 * n))
+                || get_user_ual(addrlen, vptr + 5 * n))
                 return -TARGET_EFAULT;
 
             ret = do_sendto(sockfd, msg, len, flags, addr, addrlen);
@@ -1907,19 +1907,19 @@ static abi_long do_socketcall(int num, abi_ulong vptr)
         break;
     case SOCKOP_recvfrom:
         {
-            int sockfd;
+            abi_ulong sockfd;
             abi_ulong msg;
             size_t len;
-            int flags;
+            abi_ulong flags;
             abi_ulong addr;
             socklen_t addrlen;
 
-            if (get_user_s32(sockfd, vptr)
+            if (get_user_ual(sockfd, vptr)
                 || get_user_ual(msg, vptr + n)
                 || get_user_ual(len, vptr + 2 * n)
-                || get_user_s32(flags, vptr + 3 * n)
+                || get_user_ual(flags, vptr + 3 * n)
                 || get_user_ual(addr, vptr + 4 * n)
-                || get_user_u32(addrlen, vptr + 5 * n))
+                || get_user_ual(addrlen, vptr + 5 * n))
                 return -TARGET_EFAULT;
 
             ret = do_recvfrom(sockfd, msg, len, flags, addr, addrlen);
@@ -1927,10 +1927,10 @@ static abi_long do_socketcall(int num, abi_ulong vptr)
         break;
     case SOCKOP_shutdown:
         {
-            int sockfd, how;
+            abi_ulong sockfd, how;
 
-            if (get_user_s32(sockfd, vptr)
-                || get_user_s32(how, vptr + n))
+            if (get_user_ual(sockfd, vptr)
+                || get_user_ual(how, vptr + n))
                 return -TARGET_EFAULT;
 
             ret = get_errno(shutdown(sockfd, how));
@@ -1939,13 +1939,13 @@ static abi_long do_socketcall(int num, abi_ulong vptr)
     case SOCKOP_sendmsg:
     case SOCKOP_recvmsg:
         {
-            int fd;
+            abi_ulong fd;
             abi_ulong target_msg;
-            int flags;
+            abi_ulong flags;
 
-            if (get_user_s32(fd, vptr)
+            if (get_user_ual(fd, vptr)
                 || get_user_ual(target_msg, vptr + n)
-                || get_user_s32(flags, vptr + 2 * n))
+                || get_user_ual(flags, vptr + 2 * n))
                 return -TARGET_EFAULT;
 
             ret = do_sendrecvmsg(fd, target_msg, flags,
@@ -1954,17 +1954,17 @@ static abi_long do_socketcall(int num, abi_ulong vptr)
         break;
     case SOCKOP_setsockopt:
         {
-            int sockfd;
-            int level;
-            int optname;
+            abi_ulong sockfd;
+            abi_ulong level;
+            abi_ulong optname;
             abi_ulong optval;
             socklen_t optlen;
 
-            if (get_user_s32(sockfd, vptr)
-                || get_user_s32(level, vptr + n)
-                || get_user_s32(optname, vptr + 2 * n)
+            if (get_user_ual(sockfd, vptr)
+                || get_user_ual(level, vptr + n)
+                || get_user_ual(optname, vptr + 2 * n)
                 || get_user_ual(optval, vptr + 3 * n)
-                || get_user_u32(optlen, vptr + 4 * n))
+                || get_user_ual(optlen, vptr + 4 * n))
                 return -TARGET_EFAULT;
 
             ret = do_setsockopt(sockfd, level, optname, optval, optlen);
@@ -1972,17 +1972,17 @@ static abi_long do_socketcall(int num, abi_ulong vptr)
         break;
     case SOCKOP_getsockopt:
         {
-            int sockfd;
-            int level;
-            int optname;
+            abi_ulong sockfd;
+            abi_ulong level;
+            abi_ulong optname;
             abi_ulong optval;
             socklen_t optlen;
 
-            if (get_user_s32(sockfd, vptr)
-                || get_user_s32(level, vptr + n)
-                || get_user_s32(optname, vptr + 2 * n)
+            if (get_user_ual(sockfd, vptr)
+                || get_user_ual(level, vptr + n)
+                || get_user_ual(optname, vptr + 2 * n)
                 || get_user_ual(optval, vptr + 3 * n)
-                || get_user_u32(optlen, vptr + 4 * n))
+                || get_user_ual(optlen, vptr + 4 * n))
                 return -TARGET_EFAULT;
 
             ret = do_getsockopt(sockfd, level, optname, optval, optlen);
-- 
1.6.2.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH 3/4] wrap path for access syscall
  2009-07-03 15:09     ` [Qemu-devel] [PATCH 2/4] 64-bit clean socketcall syscall Ulrich Hecht
@ 2009-07-03 15:09       ` Ulrich Hecht
  2009-07-03 15:09         ` [Qemu-devel] [PATCH 4/4] getrlimit conversion mix-up Ulrich Hecht
  0 siblings, 1 reply; 11+ messages in thread
From: Ulrich Hecht @ 2009-07-03 15:09 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Ulrich Hecht <uli@suse.de>
---
 linux-user/syscall.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index e541b0d..498ce49 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -4529,7 +4529,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
     case TARGET_NR_access:
         if (!(p = lock_user_string(arg1)))
             goto efault;
-        ret = get_errno(access(p, arg2));
+        ret = get_errno(access(path(p), arg2));
         unlock_user(p, arg1, 0);
         break;
 #if defined(TARGET_NR_faccessat) && defined(__NR_faccessat)
-- 
1.6.2.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Qemu-devel] [PATCH 4/4] getrlimit conversion mix-up
  2009-07-03 15:09       ` [Qemu-devel] [PATCH 3/4] wrap path for access syscall Ulrich Hecht
@ 2009-07-03 15:09         ` Ulrich Hecht
  2009-07-08 19:18           ` [Qemu-devel] " Riku Voipio
  0 siblings, 1 reply; 11+ messages in thread
From: Ulrich Hecht @ 2009-07-03 15:09 UTC (permalink / raw)
  To: qemu-devel

Fixes getrlimit implementation that overwrote the result of the syscall
instead of converting it

Signed-off-by: Ulrich Hecht <uli@suse.de>
---
 linux-user/syscall.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 498ce49..8e10ea2 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -5021,8 +5021,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
             if (!is_error(ret)) {
                 if (!lock_user_struct(VERIFY_WRITE, target_rlim, arg2, 0))
                     goto efault;
-                rlim.rlim_cur = tswapl(target_rlim->rlim_cur);
-                rlim.rlim_max = tswapl(target_rlim->rlim_max);
+                target_rlim->rlim_cur = tswapl(rlim.rlim_cur);
+                target_rlim->rlim_max = tswapl(rlim.rlim_max);
                 unlock_user_struct(target_rlim, arg2, 1);
             }
         }
-- 
1.6.2.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Qemu-devel] Re: [PATCH] warnings in net.c
  2009-07-03 15:09   ` [Qemu-devel] [PATCH] warnings in net.c Ulrich Hecht
  2009-07-03 15:09     ` [Qemu-devel] [PATCH 2/4] 64-bit clean socketcall syscall Ulrich Hecht
@ 2009-07-03 15:10     ` Ulrich Hecht
  1 sibling, 0 replies; 11+ messages in thread
From: Ulrich Hecht @ 2009-07-03 15:10 UTC (permalink / raw)
  To: qemu-devel

On Friday 03 July 2009, Ulrich Hecht wrote:
> removes unused slirp code and initializes ret in net_client_init()

Please ignore this, I forgot to delete it...

CU
Uli

-- 
Heute ist
- Bürgerlicher Feiertag (in der Schweiz (Aargau))
- Unabhängigkeitstag (in Belarus, den USA (19 Staaten), Samoa)

SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg)

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Qemu-devel] Re: [PATCH 4/4] getrlimit conversion mix-up
  2009-07-03 15:09         ` [Qemu-devel] [PATCH 4/4] getrlimit conversion mix-up Ulrich Hecht
@ 2009-07-08 19:18           ` Riku Voipio
  0 siblings, 0 replies; 11+ messages in thread
From: Riku Voipio @ 2009-07-08 19:18 UTC (permalink / raw)
  To: Ulrich Hecht; +Cc: qemu-devel

Thanks, all patches look fine and have been added to linux-user-for-upstream
que.

On Fri, Jul 03, 2009 at 05:09:30PM +0200, Ulrich Hecht wrote:
> Fixes getrlimit implementation that overwrote the result of the syscall
> instead of converting it
> 
> Signed-off-by: Ulrich Hecht <uli@suse.de>
> ---
>  linux-user/syscall.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index 498ce49..8e10ea2 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -5021,8 +5021,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
>              if (!is_error(ret)) {
>                  if (!lock_user_struct(VERIFY_WRITE, target_rlim, arg2, 0))
>                      goto efault;
> -                rlim.rlim_cur = tswapl(target_rlim->rlim_cur);
> -                rlim.rlim_max = tswapl(target_rlim->rlim_max);
> +                target_rlim->rlim_cur = tswapl(rlim.rlim_cur);
> +                target_rlim->rlim_max = tswapl(rlim.rlim_max);
>                  unlock_user_struct(target_rlim, arg2, 1);
>              }
>          }
> -- 
> 1.6.2.1

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2009-07-08 19:18 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-07-03 15:09 [Qemu-devel] [PATCH 0/4] linux-user syscall bugs Ulrich Hecht
2009-07-03 15:09 ` [Qemu-devel] [PATCH 1/4] pipe argument should not be signed Ulrich Hecht
2009-07-03 15:09   ` [Qemu-devel] [PATCH] warnings in net.c Ulrich Hecht
2009-07-03 15:09     ` [Qemu-devel] [PATCH 2/4] 64-bit clean socketcall syscall Ulrich Hecht
2009-07-03 15:09       ` [Qemu-devel] [PATCH 3/4] wrap path for access syscall Ulrich Hecht
2009-07-03 15:09         ` [Qemu-devel] [PATCH 4/4] getrlimit conversion mix-up Ulrich Hecht
2009-07-08 19:18           ` [Qemu-devel] " Riku Voipio
2009-07-03 15:10     ` [Qemu-devel] Re: [PATCH] warnings in net.c Ulrich Hecht
  -- strict thread matches above, loose matches on Subject: below --
2009-06-17 15:47 [Qemu-devel] " Ulrich Hecht
2009-06-17 16:06 ` Filip Navara
2009-06-17 16:37   ` [Qemu-devel] " Jan Kiszka
2009-06-18 10:01     ` Ulrich Hecht
2009-06-18  9:56   ` [Qemu-devel] " Ulrich Hecht
2009-06-18 18:31     ` [Qemu-devel] " Jan Kiszka

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).