You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by pk...@apache.org on 2023/05/08 14:56:13 UTC
[nuttx] branch master updated: fs/vfs: Zero file struct field with memset
This is an automated email from the ASF dual-hosted git repository.
pkarashchenko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git
The following commit(s) were added to refs/heads/master by this push:
new 17f173d555 fs/vfs: Zero file struct field with memset
17f173d555 is described below
commit 17f173d555367ac74fa8dc32b4fe9d778e9b612d
Author: Xiang Xiao <xi...@xiaomi.com>
AuthorDate: Sun May 7 02:42:18 2023 +0800
fs/vfs: Zero file struct field with memset
to avoid set fields to zero one by one
Signed-off-by: Xiang Xiao <xi...@xiaomi.com>
---
fs/mqueue/mq_open.c | 14 ++++++--------
fs/nxffs/nxffs_write.c | 4 ++--
fs/shm/shm_open.c | 3 +--
fs/unionfs/fs_unionfs.c | 6 +-----
fs/vfs/fs_close.c | 5 +----
fs/vfs/fs_dir.c | 4 ++--
fs/vfs/fs_dup2.c | 2 +-
fs/vfs/fs_open.c | 3 +--
8 files changed, 15 insertions(+), 26 deletions(-)
diff --git a/fs/mqueue/mq_open.c b/fs/mqueue/mq_open.c
index 18ab420ecd..627e57f4dd 100644
--- a/fs/mqueue/mq_open.c
+++ b/fs/mqueue/mq_open.c
@@ -253,10 +253,9 @@ static int file_mq_vopen(FAR struct file *mq, FAR const char *mq_name,
/* Associate the inode with a file structure */
- mq->f_oflags = oflags;
- mq->f_pos = 0;
- mq->f_inode = inode;
- mq->f_priv = NULL;
+ memset(mq, 0, sizeof(*mq));
+ mq->f_oflags = oflags;
+ mq->f_inode = inode;
if (created)
{
@@ -303,10 +302,9 @@ static int file_mq_vopen(FAR struct file *mq, FAR const char *mq_name,
/* Associate the inode with a file structure */
- mq->f_oflags = oflags;
- mq->f_pos = 0;
- mq->f_inode = inode;
- mq->f_priv = NULL;
+ memset(mq, 0, sizeof(*mq));
+ mq->f_oflags = oflags;
+ mq->f_inode = inode;
INODE_SET_MQUEUE(inode);
inode->u.i_ops = &g_nxmq_fileops;
diff --git a/fs/nxffs/nxffs_write.c b/fs/nxffs/nxffs_write.c
index 35d2c42d80..a586635665 100644
--- a/fs/nxffs/nxffs_write.c
+++ b/fs/nxffs/nxffs_write.c
@@ -607,8 +607,8 @@ ssize_t nxffs_write(FAR struct file *filep, FAR const char *buffer,
/* Success.. return the number of bytes written */
- ret = total;
- filep->f_pos = wrfile->datlen;
+ ret = total;
+ filep->f_pos = wrfile->datlen;
errout_with_lock:
nxmutex_unlock(&volume->lock);
diff --git a/fs/shm/shm_open.c b/fs/shm/shm_open.c
index d10f8366d6..6274e460ed 100644
--- a/fs/shm/shm_open.c
+++ b/fs/shm/shm_open.c
@@ -141,10 +141,9 @@ static int file_shm_open(FAR struct file *shm, FAR const char *name,
/* Associate the inode with a file structure */
+ memset(shm, 0, sizeof(*shm));
shm->f_oflags = oflags;
- shm->f_pos = 0;
shm->f_inode = inode;
- shm->f_priv = NULL;
errout_with_sem:
inode_unlock();
diff --git a/fs/unionfs/fs_unionfs.c b/fs/unionfs/fs_unionfs.c
index 523270329f..a7ab19002e 100644
--- a/fs/unionfs/fs_unionfs.c
+++ b/fs/unionfs/fs_unionfs.c
@@ -869,7 +869,7 @@ static int unionfs_open(FAR struct file *filep, FAR const char *relpath,
/* Allocate a container to hold the open file system information */
uf = (FAR struct unionfs_file_s *)
- kmm_malloc(sizeof(struct unionfs_file_s));
+ kmm_zalloc(sizeof(struct unionfs_file_s));
if (uf == NULL)
{
ret = -ENOMEM;
@@ -883,9 +883,7 @@ static int unionfs_open(FAR struct file *filep, FAR const char *relpath,
um->um_node->u.i_mops != NULL);
uf->uf_file.f_oflags = filep->f_oflags;
- uf->uf_file.f_pos = 0;
uf->uf_file.f_inode = um->um_node;
- uf->uf_file.f_priv = NULL;
ret = unionfs_tryopen(&uf->uf_file, relpath, um->um_prefix, oflags, mode);
if (ret >= 0)
@@ -901,9 +899,7 @@ static int unionfs_open(FAR struct file *filep, FAR const char *relpath,
um = &ui->ui_fs[1];
uf->uf_file.f_oflags = filep->f_oflags;
- uf->uf_file.f_pos = 0;
uf->uf_file.f_inode = um->um_node;
- uf->uf_file.f_priv = NULL;
ret = unionfs_tryopen(&uf->uf_file, relpath, um->um_prefix, oflags,
mode);
diff --git a/fs/vfs/fs_close.c b/fs/vfs/fs_close.c
index 139ea2592e..926f48f480 100644
--- a/fs/vfs/fs_close.c
+++ b/fs/vfs/fs_close.c
@@ -80,10 +80,7 @@ int file_close(FAR struct file *filep)
/* Reset the user file struct instance so that it cannot be reused. */
- filep->f_oflags = 0;
- filep->f_pos = 0;
- filep->f_inode = NULL;
- filep->f_priv = NULL;
+ memset(filep, 0, sizeof(*filep));
}
return ret;
diff --git a/fs/vfs/fs_dir.c b/fs/vfs/fs_dir.c
index eeb8415114..8568628457 100644
--- a/fs/vfs/fs_dir.c
+++ b/fs/vfs/fs_dir.c
@@ -607,8 +607,8 @@ int dir_allocate(FAR struct file *filep, FAR const char *relpath)
return ret;
}
- filep->f_inode = &g_dir_inode;
- filep->f_priv = dir;
+ filep->f_inode = &g_dir_inode;
+ filep->f_priv = dir;
inode_addref(&g_dir_inode);
return ret;
}
diff --git a/fs/vfs/fs_dup2.c b/fs/vfs/fs_dup2.c
index cb07556524..dfe91eada3 100644
--- a/fs/vfs/fs_dup2.c
+++ b/fs/vfs/fs_dup2.c
@@ -79,10 +79,10 @@ int file_dup2(FAR struct file *filep1, FAR struct file *filep2)
/* Then clone the file structure */
+ memset(&temp, 0, sizeof(temp));
temp.f_oflags = filep1->f_oflags;
temp.f_pos = filep1->f_pos;
temp.f_inode = inode;
- temp.f_priv = NULL;
/* Call the open method on the file, driver, mountpoint so that it
* can maintain the correct open counts.
diff --git a/fs/vfs/fs_open.c b/fs/vfs/fs_open.c
index 44e344adf4..b0ca901666 100644
--- a/fs/vfs/fs_open.c
+++ b/fs/vfs/fs_open.c
@@ -156,10 +156,9 @@ static int file_vopen(FAR struct file *filep, FAR const char *path,
/* Associate the inode with a file structure */
+ memset(filep, 0, sizeof(*filep));
filep->f_oflags = oflags;
- filep->f_pos = 0;
filep->f_inode = inode;
- filep->f_priv = NULL;
/* Perform the driver open operation. NOTE that the open method may be
* called many times. The driver/mountpoint logic should handle this