You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by xi...@apache.org on 2021/12/19 07:41:21 UTC
[incubator-nuttx] 03/05: eventfd: Change minor type from size_t to unsigned int
This is an automated email from the ASF dual-hosted git repository.
xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
commit 76a4ca01a34a4ce93c4c45637b5de6e9a156716a
Author: Xiang Xiao <xi...@xiaomi.com>
AuthorDate: Sat Dec 18 21:34:15 2021 +0800
eventfd: Change minor type from size_t to unsigned int
to avoid the potential overflow devpath buffer on 64bit platform
Signed-off-by: Xiang Xiao <xi...@xiaomi.com>
---
fs/vfs/fs_eventfd.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/fs/vfs/fs_eventfd.c b/fs/vfs/fs_eventfd.c
index ed924d2..738544d 100644
--- a/fs/vfs/fs_eventfd.c
+++ b/fs/vfs/fs_eventfd.c
@@ -66,10 +66,10 @@ struct eventfd_priv_s
sem_t exclsem; /* Enforces device exclusive access */
eventfd_waiter_sem_t *rdsems; /* List of blocking readers */
eventfd_waiter_sem_t *wrsems; /* List of blocking writers */
- eventfd_t counter; /* eventfd counter */
- size_t minor; /* eventfd minor number */
- uint8_t crefs; /* References counts on eventfd (max: 255) */
- uint8_t mode_semaphore; /* eventfd mode (semaphore or counter) */
+ eventfd_t counter; /* eventfd counter */
+ unsigned int minor; /* eventfd minor number */
+ uint8_t crefs; /* References counts on eventfd (max: 255) */
+ uint8_t mode_semaphore; /* eventfd mode (semaphore or counter) */
/* The following is a list if poll structures of threads waiting for
* driver events.
@@ -103,8 +103,8 @@ static int eventfd_blocking_io(FAR struct eventfd_priv_s *dev,
eventfd_waiter_sem_t *sem,
FAR eventfd_waiter_sem_t **slist);
-static size_t eventfd_get_unique_minor(void);
-static void eventfd_release_minor(size_t minor);
+static unsigned int eventfd_get_unique_minor(void);
+static void eventfd_release_minor(unsigned int minor);
static FAR struct eventfd_priv_s *eventfd_allocdev(void);
static void eventfd_destroy(FAR struct eventfd_priv_s *dev);
@@ -175,14 +175,14 @@ static void eventfd_pollnotify(FAR struct eventfd_priv_s *dev,
}
#endif
-static size_t eventfd_get_unique_minor(void)
+static unsigned int eventfd_get_unique_minor(void)
{
- static size_t minor;
+ static unsigned int minor;
return minor++;
}
-static void eventfd_release_minor(size_t minor)
+static void eventfd_release_minor(unsigned int minor)
{
}
@@ -591,7 +591,7 @@ int eventfd(unsigned int count, int flags)
/* Get device path */
- sprintf(devpath, CONFIG_EVENT_FD_VFS_PATH "/efd%d", new_dev->minor);
+ sprintf(devpath, CONFIG_EVENT_FD_VFS_PATH "/efd%u", new_dev->minor);
/* Register the driver */