X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fpasswd%2Fgetpwent_a.c;h=1bd7f4fcc4ba1b2851707cb8f8c4617943b027fc;hb=7dba0494e8153e4358b09cbf30ff07d5ba4dbf37;hp=aaf84edde708416302b51eb376f0876ea9382a44;hpb=0b44a0315b47dd8eced9f3b7f31580cf14bbfc01;p=musl diff --git a/src/passwd/getpwent_a.c b/src/passwd/getpwent_a.c index aaf84edd..1bd7f4fc 100644 --- a/src/passwd/getpwent_a.c +++ b/src/passwd/getpwent_a.c @@ -1,14 +1,18 @@ #include "pwf.h" +#include struct passwd *__getpwent_a(FILE *f, struct passwd *pw, char **line, size_t *size) { ssize_t l; char *s; + int cs; + pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cs); for (;;) { if ((l=getline(line, size, f)) < 0) { free(*line); *line = 0; - return 0; + pw = 0; + break; } line[0][l-1] = 0; @@ -32,6 +36,8 @@ struct passwd *__getpwent_a(FILE *f, struct passwd *pw, char **line, size_t *siz if (!(s = strchr(s, ':'))) continue; *s++ = 0; pw->pw_shell = s; - return pw; + break; } + pthread_setcancelstate(cs, 0); + return pw; }