summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2009-08-23 19:47:05 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2009-08-23 19:47:05 +0200
commitb4547d9244cb9221bcaaa8f583c566bab5638784 (patch)
treed7af1749af5f834e761440c219e24b571f8db201
parent4776fb251ce840be1099ffc481116d8a3ee8916a (diff)
Fix pthread_setcancelstate/type crash
* pthread/pt-setcancelstate.c (pthread_setcancelstate): Check whether OLDSTATE is NULL before filling it. * pthread/pt-setcanceltype.c (pthread_setcanceltype): Likewise.
-rw-r--r--pthread/pt-setcancelstate.c3
-rw-r--r--pthread/pt-setcanceltype.c3
2 files changed, 4 insertions, 2 deletions
diff --git a/pthread/pt-setcancelstate.c b/pthread/pt-setcancelstate.c
index ded5892..e2d8183 100644
--- a/pthread/pt-setcancelstate.c
+++ b/pthread/pt-setcancelstate.c
@@ -35,7 +35,8 @@ pthread_setcancelstate (int state, int *oldstate)
break;
}
- *oldstate = p->cancel_state;
+ if (oldstate)
+ *oldstate = p->cancel_state;
p->cancel_state = state;
return 0;
diff --git a/pthread/pt-setcanceltype.c b/pthread/pt-setcanceltype.c
index 9511c99..3ce4259 100644
--- a/pthread/pt-setcanceltype.c
+++ b/pthread/pt-setcanceltype.c
@@ -35,7 +35,8 @@ pthread_setcanceltype (int type, int *oldtype)
break;
}
- *oldtype = p->cancel_type;
+ if (oldtype)
+ *oldtype = p->cancel_type;
p->cancel_type = type;
return 0;