This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Fix NPTL forward.c


Hi!

While FORWARD macro has default return value as last argument, FORWARD2
has default action.  With defaction 0 we end up with:
if (someptr == NULL)
  0;
(*someptr) (arguments);
which will segfault if libpthread.so is not loaded.

2004-03-11  Jakub Jelinek  <jakub@redhat.com>

	* forward.c (__pthread_cond_broadcast_2_0,
	__pthread_cond_destroy_2_0, __pthread_cond_init_2_0,
	__pthread_cond_signal_2_0, __pthread_cond_wait_2_0,
	__pthread_cond_timedwait_2_0): Use return 0 as defaction instead of
	0.

--- libc/nptl/forward.c.jj	2004-03-10 10:32:00.000000000 +0100
+++ libc/nptl/forward.c	2004-03-11 12:03:14.211544646 +0100
@@ -89,7 +89,7 @@ FORWARD (pthread_condattr_init, (pthread
 
 #if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2)
 FORWARD2 (__pthread_cond_broadcast_2_0, int attribute_compat_text_section,
-	  (pthread_cond_2_0_t *cond), (cond), 0)
+	  (pthread_cond_2_0_t *cond), (cond), return 0)
 compat_symbol (libc, __pthread_cond_broadcast_2_0, pthread_cond_broadcast,
 	       GLIBC_2_0);
 #endif
@@ -99,7 +99,7 @@ versioned_symbol (libc, __pthread_cond_b
 
 #if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2)
 FORWARD2 (__pthread_cond_destroy_2_0, int attribute_compat_text_section,
-	  (pthread_cond_2_0_t *cond), (cond), 0)
+	  (pthread_cond_2_0_t *cond), (cond), return 0)
 compat_symbol (libc, __pthread_cond_destroy_2_0, pthread_cond_destroy,
 	       GLIBC_2_0);
 #endif
@@ -110,7 +110,7 @@ versioned_symbol (libc, __pthread_cond_d
 #if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2)
 FORWARD2 (__pthread_cond_init_2_0, int attribute_compat_text_section,
 	  (pthread_cond_2_0_t *cond, const pthread_condattr_t *cond_attr),
-	  (cond, cond_attr), 0)
+	  (cond, cond_attr), return 0)
 compat_symbol (libc, __pthread_cond_init_2_0, pthread_cond_init, GLIBC_2_0);
 #endif
 FORWARD (__pthread_cond_init,
@@ -120,7 +120,7 @@ versioned_symbol (libc, __pthread_cond_i
 
 #if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2)
 FORWARD2 (__pthread_cond_signal_2_0, int attribute_compat_text_section,
-	  (pthread_cond_2_0_t *cond), (cond), 0)
+	  (pthread_cond_2_0_t *cond), (cond), return 0)
 compat_symbol (libc, __pthread_cond_signal_2_0, pthread_cond_signal,
 	       GLIBC_2_0);
 #endif
@@ -130,7 +130,8 @@ versioned_symbol (libc, __pthread_cond_s
 
 #if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2)
 FORWARD2 (__pthread_cond_wait_2_0, int attribute_compat_text_section,
-	  (pthread_cond_2_0_t *cond, pthread_mutex_t *mutex), (cond, mutex), 0)
+	  (pthread_cond_2_0_t *cond, pthread_mutex_t *mutex), (cond, mutex),
+	  return 0)
 compat_symbol (libc, __pthread_cond_wait_2_0, pthread_cond_wait,
 	       GLIBC_2_0);
 #endif
@@ -142,7 +143,8 @@ versioned_symbol (libc, __pthread_cond_w
 #if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2)
 FORWARD2 (__pthread_cond_timedwait_2_0, int attribute_compat_text_section,
 	  (pthread_cond_2_0_t *cond, pthread_mutex_t *mutex,
-	   const struct timespec *abstime), (cond, mutex, abstime), 0)
+	   const struct timespec *abstime), (cond, mutex, abstime),
+	  return 0)
 compat_symbol (libc, __pthread_cond_timedwait_2_0, pthread_cond_timedwait,
 	       GLIBC_2_0);
 #endif

	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]