virtiofsd: Remove fuse_req_getgroups
Remove fuse_req_getgroups that's unused in virtiofsd; it came in from libfuse but we don't actually use it. It was called from fuse_getgroups which we previously removed (but had left it's header in). Coverity had complained about null termination in it, but removing it is the easiest answer. Fixes: Coverity CID: 1413117 (String not null terminated) Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
2b8a51cdb3
commit
988717b46b
@ -1006,26 +1006,6 @@ void fuse_exit(struct fuse *f);
|
||||
*/
|
||||
struct fuse_context *fuse_get_context(void);
|
||||
|
||||
/**
|
||||
* Get the current supplementary group IDs for the current request
|
||||
*
|
||||
* Similar to the getgroups(2) system call, except the return value is
|
||||
* always the total number of group IDs, even if it is larger than the
|
||||
* specified size.
|
||||
*
|
||||
* The current fuse kernel module in linux (as of 2.6.30) doesn't pass
|
||||
* the group list to userspace, hence this function needs to parse
|
||||
* "/proc/$TID/task/$TID/status" to get the group IDs.
|
||||
*
|
||||
* This feature may not be supported on all operating systems. In
|
||||
* such a case this function will return -ENOSYS.
|
||||
*
|
||||
* @param size size of given array
|
||||
* @param list array of group IDs to be filled in
|
||||
* @return the total number of supplementary group IDs or -errno on failure
|
||||
*/
|
||||
int fuse_getgroups(int size, gid_t list[]);
|
||||
|
||||
/**
|
||||
* Check if the current request has already been interrupted
|
||||
*
|
||||
|
@ -2667,83 +2667,6 @@ int fuse_lowlevel_is_virtio(struct fuse_session *se)
|
||||
return !!se->virtio_dev;
|
||||
}
|
||||
|
||||
#ifdef linux
|
||||
int fuse_req_getgroups(fuse_req_t req, int size, gid_t list[])
|
||||
{
|
||||
char *buf;
|
||||
size_t bufsize = 1024;
|
||||
char path[128];
|
||||
int ret;
|
||||
int fd;
|
||||
unsigned long pid = req->ctx.pid;
|
||||
char *s;
|
||||
|
||||
sprintf(path, "/proc/%lu/task/%lu/status", pid, pid);
|
||||
|
||||
retry:
|
||||
buf = malloc(bufsize);
|
||||
if (buf == NULL) {
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
ret = -EIO;
|
||||
fd = open(path, O_RDONLY);
|
||||
if (fd == -1) {
|
||||
goto out_free;
|
||||
}
|
||||
|
||||
ret = read(fd, buf, bufsize);
|
||||
close(fd);
|
||||
if (ret < 0) {
|
||||
ret = -EIO;
|
||||
goto out_free;
|
||||
}
|
||||
|
||||
if ((size_t)ret == bufsize) {
|
||||
free(buf);
|
||||
bufsize *= 4;
|
||||
goto retry;
|
||||
}
|
||||
|
||||
ret = -EIO;
|
||||
s = strstr(buf, "\nGroups:");
|
||||
if (s == NULL) {
|
||||
goto out_free;
|
||||
}
|
||||
|
||||
s += 8;
|
||||
ret = 0;
|
||||
while (1) {
|
||||
char *end;
|
||||
unsigned long val = strtoul(s, &end, 0);
|
||||
if (end == s) {
|
||||
break;
|
||||
}
|
||||
|
||||
s = end;
|
||||
if (ret < size) {
|
||||
list[ret] = val;
|
||||
}
|
||||
ret++;
|
||||
}
|
||||
|
||||
out_free:
|
||||
free(buf);
|
||||
return ret;
|
||||
}
|
||||
#else /* linux */
|
||||
/*
|
||||
* This is currently not implemented on other than Linux...
|
||||
*/
|
||||
int fuse_req_getgroups(fuse_req_t req, int size, gid_t list[])
|
||||
{
|
||||
(void)req;
|
||||
(void)size;
|
||||
(void)list;
|
||||
return -ENOSYS;
|
||||
}
|
||||
#endif
|
||||
|
||||
void fuse_session_exit(struct fuse_session *se)
|
||||
{
|
||||
se->exited = 1;
|
||||
|
@ -1704,27 +1704,6 @@ void *fuse_req_userdata(fuse_req_t req);
|
||||
*/
|
||||
const struct fuse_ctx *fuse_req_ctx(fuse_req_t req);
|
||||
|
||||
/**
|
||||
* Get the current supplementary group IDs for the specified request
|
||||
*
|
||||
* Similar to the getgroups(2) system call, except the return value is
|
||||
* always the total number of group IDs, even if it is larger than the
|
||||
* specified size.
|
||||
*
|
||||
* The current fuse kernel module in linux (as of 2.6.30) doesn't pass
|
||||
* the group list to userspace, hence this function needs to parse
|
||||
* "/proc/$TID/task/$TID/status" to get the group IDs.
|
||||
*
|
||||
* This feature may not be supported on all operating systems. In
|
||||
* such a case this function will return -ENOSYS.
|
||||
*
|
||||
* @param req request handle
|
||||
* @param size size of given array
|
||||
* @param list array of group IDs to be filled in
|
||||
* @return the total number of supplementary group IDs or -errno on failure
|
||||
*/
|
||||
int fuse_req_getgroups(fuse_req_t req, int size, gid_t list[]);
|
||||
|
||||
/**
|
||||
* Callback function for an interrupt
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user