X-Git-Url: http://nsz.repo.hu/git/?p=musl;a=blobdiff_plain;f=src%2Fthread%2Fpthread_barrier_init.c;h=01e8cd6bf655e167d66f9060e73f69721f997656;hp=736d10146faf86cc432be85593482ddada09fb85;hb=2d0f495e7bbcc1b17bf118b939e347e2d771fa2f;hpb=e882756311c7b06e59fcc8e582f03852b7dcfd30 diff --git a/src/thread/pthread_barrier_init.c b/src/thread/pthread_barrier_init.c index 736d1014..01e8cd6b 100644 --- a/src/thread/pthread_barrier_init.c +++ b/src/thread/pthread_barrier_init.c @@ -1,8 +1,8 @@ #include "pthread_impl.h" -int pthread_barrier_init(pthread_barrier_t *b, const pthread_barrierattr_t *a, unsigned count) +int pthread_barrier_init(pthread_barrier_t *restrict b, const pthread_barrierattr_t *restrict a, unsigned count) { - if (!count) return EINVAL; - *b = (pthread_barrier_t){ ._b_limit = count-1 }; + if (count-1 > INT_MAX-1) return EINVAL; + *b = (pthread_barrier_t){ ._b_limit = count-1 | (a?*a:0) }; return 0; }