提交 58fa8569 编写于 作者: R Rich Felker

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.
上级 18f75b80
......@@ -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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册