return 0;
}
- *sgids = (gid_t*)malloc(c*sizeof(**sgids));
- if (!*sgids) {
+ gid_t *gids = new (std::nothrow) gid_t[c];
+ if (!gids) {
return -ENOMEM;
}
- c = fuse_req_getgroups(req, c, *sgids);
+ c = fuse_req_getgroups(req, c, gids);
if (c < 0) {
- free(*sgids);
- return c;
+ delete gids;
+ } else {
+ *sgids = gids;
}
return c;
#endif