The following commit has been merged in the libpthread branch:
commit a6bb8f89d9569a3ecb0cefb892fd981481a8e976
Author: Samuel Thibault <[email protected]>
Date:   Fri Sep 3 00:20:42 2010 +0200

    Fix __sched_param / sched_param conversion
    
    * sysdeps/generic/pt-attr-getschedparam.c (pthread_attr_getschedparam):
    memcpy from `attr->schedparam' to `param' to convert from __sched_param
    to sched_param.
    * sysdeps/generic/pt-attr-setschedparam.c (pthread_attr_setschedparam):
    memcpy from `param' to `attr->schedparam' to convert from sched_param
    to __sched_param.

diff --git a/sysdeps/generic/pt-attr-getschedparam.c 
b/sysdeps/generic/pt-attr-getschedparam.c
index 25afebd..6c3f15b 100644
--- a/sysdeps/generic/pt-attr-getschedparam.c
+++ b/sysdeps/generic/pt-attr-getschedparam.c
@@ -26,6 +26,6 @@ int
 pthread_attr_getschedparam (const pthread_attr_t *attr,
                            struct sched_param *param)
 {
-  *param = attr->schedparam;
+  memcpy (param, &attr->schedparam, sizeof *param);
   return 0;
 }
diff --git a/sysdeps/generic/pt-attr-setschedparam.c 
b/sysdeps/generic/pt-attr-setschedparam.c
index 18a575e..5459f10 100644
--- a/sysdeps/generic/pt-attr-setschedparam.c
+++ b/sysdeps/generic/pt-attr-setschedparam.c
@@ -30,7 +30,7 @@ pthread_attr_setschedparam (pthread_attr_t *attr,
   if (memcmp (param, &__pthread_default_attr.schedparam,
              sizeof *param) == 0)
     {
-      attr->schedparam = *param;
+      memcpy (&attr->schedparam, param, sizeof *param);
       return 0;
     }
 

-- 
Debian GNU Hurd packaging

Reply via email to