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 */