]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
2005-10-17 Thomas Schwinge <tschwinge@gnu.org>
authorRoland McGrath <roland@gnu.org>
Sun, 23 Oct 2005 00:55:46 +0000 (00:55 +0000)
committerRoland McGrath <roland@gnu.org>
Sun, 23 Oct 2005 00:55:46 +0000 (00:55 +0000)
[BZ #1252]
* hurd/intr-msg.c (_hurd_intr_rpc_mach_msg): Don't use ?: as lvalue.
* sysdeps/mach/hurd/ioctl.c (__ioctl): Likewise.

hurd/intr-msg.c
sysdeps/mach/hurd/ioctl.c

index e75fca81fb66a27c9d95a2963794eaf550431d66..0ca6af35804009762d945fec77693c2d86fcd7a0 100644 (file)
@@ -1,5 +1,6 @@
 /* Replacement for mach_msg used in interruptible Hurd RPCs.
-   Copyright (C) 1995,96,97,98,99,2000,01,02 Free Software Foundation, Inc.
+   Copyright (C) 1995,96,97,98,99,2000,2001,2002,2005
+       Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -201,9 +202,10 @@ _hurd_intr_rpc_mach_msg (mach_msg_header_t *msg,
                    case MACH_MSG_TYPE_MOVE_SEND:
                      for (i = 0; i < number; i++)
                        __mach_port_deallocate (__mach_task_self (), *ports++);
-                     (ty->msgtl_header.msgt_longform
-                      ? ty->msgtl_name : ty->msgtl_header.msgt_name)
-                       = MACH_MSG_TYPE_COPY_SEND;
+                     if (ty->msgtl_header.msgt_longform)
+                       ty->msgtl_name = MACH_MSG_TYPE_COPY_SEND;
+                     else
+                       ty->msgtl_header.msgt_name = MACH_MSG_TYPE_COPY_SEND;
                      break;
                    case MACH_MSG_TYPE_COPY_SEND:
                    case MACH_MSG_TYPE_MOVE_RECEIVE:
@@ -223,29 +225,29 @@ _hurd_intr_rpc_mach_msg (mach_msg_header_t *msg,
                  name = ty->msgtl_name;
                  size = ty->msgtl_size;
                  number = ty->msgtl_number;
-                 (char *) ty += sizeof (mach_msg_type_long_t);
+                 ty = (void *) ty + sizeof (mach_msg_type_long_t);
                }
              else
                {
                  name = ty->msgtl_header.msgt_name;
                  size = ty->msgtl_header.msgt_size;
                  number = ty->msgtl_header.msgt_number;
-                 (char *) ty += sizeof (mach_msg_type_t);
+                 ty = (void *) ty + sizeof (mach_msg_type_t);
                }
 
              if (ty->msgtl_header.msgt_inline)
                {
                  clean_ports ((void *) ty, 0);
                  /* calculate length of data in bytes, rounding up */
-                 (char *) ty += (((((number * size) + 7) >> 3)
-                                  + sizeof (mach_msg_type_t) - 1)
-                                 &~ (sizeof (mach_msg_type_t) - 1));
+                 ty = (void *) ty + (((((number * size) + 7) >> 3)
+                                      + sizeof (mach_msg_type_t) - 1)
+                                     &~ (sizeof (mach_msg_type_t) - 1));
                }
              else
                {
                  clean_ports (*(void **) ty,
                               ty->msgtl_header.msgt_deallocate);
-                 ++(void **) ty;
+                 ty = (void *) ty + sizeof (void *);
                }
            }
 #else  /* Untyped Mach IPC flavor. */
index 3d590d58457215667b8e9faf05a447470836c079..6a540241a492af0ab2ae5e1ccb515cd1c8db617f 100644 (file)
@@ -1,4 +1,5 @@
-/* Copyright (C) 1992,93,94,95,96,97,99,2000,02 Free Software Foundation, Inc.
+/* Copyright (C) 1992,93,94,95,96,97,99,2000,2002,2005
+       Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -136,9 +137,11 @@ __ioctl (int fd, unsigned long int request, ...)
             Rather than pointing to the value, ARG is the value itself.  */
 #ifdef MACH_MSG_TYPE_BIT
          *t++ = io2mach_type (1, _IOTS (integer_t));
-         *((integer_t *) t)++ = (integer_t) arg;
+         *(integer_t *) t = (integer_t) arg;
+         t = (void *) t + sizeof (integer_t);
 #else
-         *((integer_t *) p)++ = (integer_t) arg;
+         *(integer_t *) p = (integer_t) arg;
+         p = (void *) p + sizeof (integer_t);
 #endif
        }