summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland McGrath <roland@hack.frob.com>2013-04-19 13:49:07 -0700
committerRoland McGrath <roland@hack.frob.com>2013-04-19 14:57:25 -0700
commit0d3158a3c122d48d65c4bd62c5ae8dc52b900422 (patch)
tree7e896c581aa105e47aa0dcb4eb8e80f1c43dd422
parent7214d558d3a63e9c7b638787953ab1fe80c4adc1 (diff)
downloadglibc-roland/pthread_attr_getstack.tar.gz
Make pthread_attr_getstack fail with EINVAL when called in "unspecified behavior" situation wherein the stackaddr was never set.roland/pthread_attr_getstack
-rw-r--r--nptl/ChangeLog5
-rw-r--r--nptl/pthread_attr_getstack.c3
2 files changed, 8 insertions, 0 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index d2a1e477e4..85f0c40ffc 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,8 @@
+2013-04-19 Roland McGrath <roland@hack.frob.com>
+
+ * pthread_attr_getstack.c: Fail with EINVAL if the stack address has
+ not been set.
+
2013-04-11 Andreas Schwab <schwab@suse.de>
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
diff --git a/nptl/pthread_attr_getstack.c b/nptl/pthread_attr_getstack.c
index 03907b7242..696d8c07f6 100644
--- a/nptl/pthread_attr_getstack.c
+++ b/nptl/pthread_attr_getstack.c
@@ -31,6 +31,9 @@ __pthread_attr_getstack (attr, stackaddr, stacksize)
assert (sizeof (*attr) >= sizeof (struct pthread_attr));
iattr = (struct pthread_attr *) attr;
+ if (!(iattr->flags & ATTR_FLAG_STACKADDR))
+ return EINVAL;
+
/* Store the result. */
*stackaddr = (char *) iattr->stackaddr - iattr->stacksize;
*stacksize = iattr->stacksize;