Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fdbf3cee authored by Lino Sanfilippo's avatar Lino Sanfilippo Committed by Eric Paris
Browse files

fanotify: Dont try to open a file descriptor for the overflow event



We should not try to open a file descriptor for the overflow event since this
will always fail.

Signed-off-by: default avatarLino Sanfilippo <LinoSanfilippo@gmx.de>
Signed-off-by: default avatarEric Paris <eparis@redhat.com>
parent e9a3854f
Loading
Loading
Loading
Loading
+13 −4
Original line number Diff line number Diff line
@@ -110,6 +110,8 @@ static int fill_event_metadata(struct fsnotify_group *group,
				   struct fanotify_event_metadata *metadata,
				   struct fsnotify_event *event)
{
	int ret = 0;

	pr_debug("%s: group=%p metadata=%p event=%p\n", __func__,
		 group, metadata, event);

@@ -117,9 +119,15 @@ static int fill_event_metadata(struct fsnotify_group *group,
	metadata->vers = FANOTIFY_METADATA_VERSION;
	metadata->mask = event->mask & FAN_ALL_OUTGOING_EVENTS;
	metadata->pid = pid_vnr(event->tgid);
	if (unlikely(event->mask & FAN_Q_OVERFLOW))
		metadata->fd = FAN_NOFD;
	else {
		metadata->fd = create_fd(group, event);
		if (metadata->fd < 0)
			ret = metadata->fd;
	}

	return metadata->fd;
	return ret;
}

#ifdef CONFIG_FANOTIFY_ACCESS_PERMISSIONS
@@ -261,7 +269,7 @@ static ssize_t copy_event_to_user(struct fsnotify_group *group,
	if (ret < 0)
		goto out;

	fd = ret;
	fd = fanotify_event_metadata.fd;
	ret = prepare_for_access_response(group, event, fd);
	if (ret)
		goto out_close_fd;
@@ -275,6 +283,7 @@ static ssize_t copy_event_to_user(struct fsnotify_group *group,
out_kill_access_response:
	remove_access_response(group, event, fd);
out_close_fd:
	if (fd != FAN_NOFD)
		sys_close(fd);
out:
#ifdef CONFIG_FANOTIFY_ACCESS_PERMISSIONS