mirror of git://git.musl-libc.org/musl
fix mishandling of ENOMEM return case in internal getgrent_a function
due to an incorrect return statement in this error case, the previously blocked cancellation state was not restored and no result was stored. this could lead to invalid (read) accesses in the caller resulting in crashes or nonsensical result data in the event of memory exhaustion.
This commit is contained in:
parent
18f75b80fd
commit
58fa856960
|
@ -48,7 +48,8 @@ int __getgrent_a(FILE *f, struct group *gr, char **line, size_t *size, char ***m
|
|||
rv = errno;
|
||||
free(*line);
|
||||
*line = 0;
|
||||
return 0;
|
||||
gr = 0;
|
||||
goto end;
|
||||
}
|
||||
if (*mems) {
|
||||
mem[0][0] = mems;
|
||||
|
|
Loading…
Reference in New Issue