Re: [PATCH v4] Staging: exfat: avoid use of strcpy
No worries... We all have days like that occasionally. :P regards, dan carpenter ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH v4] Staging: exfat: avoid use of strcpy
> On 11 Sep 2019, at 21:06, Dan Carpenter wrote: > > On Wed, Sep 11, 2019 at 09:53:03PM +0200, Sandro Volery wrote: >> diff --git a/drivers/staging/exfat/exfat_core.c >> b/drivers/staging/exfat/exfat_core.c >> index da8c58149c35..4336fee444ce 100644 >> --- a/drivers/staging/exfat/exfat_core.c >> +++ b/drivers/staging/exfat/exfat_core.c >> @@ -2960,18 +2960,15 @@ s32 resolve_path(struct inode *inode, char *path, >> struct chain_t *p_dir, >>struct super_block *sb = inode->i_sb; >>struct fs_info_t *p_fs = &(EXFAT_SB(sb)->fs_info); >>struct file_id_t *fid = &(EXFAT_I(inode)->fid); >> - >> -if (strlen(path) >= (MAX_NAME_LENGTH * MAX_CHARSET_SIZE)) >> + > > You have added a tab here. > >> +if (strscpy(name_buf, path, sizeof(name_buf)) < 0) >>return FFS_INVALIDPATH; >> >> -strcpy(name_buf, path); >> - >>nls_cstring_to_uniname(sb, p_uniname, name_buf, ); >>if (lossy) >>return FFS_INVALIDPATH; >> >> -fid->size = i_size_read(inode); >> - >> +fid->size = i_size_read(inode); > > And you accidentally deleted some white space here. > > I use vim, so I have it configured to highlight whitespace at the end of > a line. I don't remember how it's done now but I googled it for you. > https://vim.fandom.com/wiki/Highlight_unwanted_spaces Ugh I'm so sorry I make the most stupid mistakes today.. I was so sure this time I got it right! I'll fix it tomorrow. Thanks, Sandro V ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH v4] Staging: exfat: avoid use of strcpy
On Wed, Sep 11, 2019 at 09:53:03PM +0200, Sandro Volery wrote: > diff --git a/drivers/staging/exfat/exfat_core.c > b/drivers/staging/exfat/exfat_core.c > index da8c58149c35..4336fee444ce 100644 > --- a/drivers/staging/exfat/exfat_core.c > +++ b/drivers/staging/exfat/exfat_core.c > @@ -2960,18 +2960,15 @@ s32 resolve_path(struct inode *inode, char *path, > struct chain_t *p_dir, > struct super_block *sb = inode->i_sb; > struct fs_info_t *p_fs = &(EXFAT_SB(sb)->fs_info); > struct file_id_t *fid = &(EXFAT_I(inode)->fid); > - > - if (strlen(path) >= (MAX_NAME_LENGTH * MAX_CHARSET_SIZE)) > + You have added a tab here. > + if (strscpy(name_buf, path, sizeof(name_buf)) < 0) > return FFS_INVALIDPATH; > > - strcpy(name_buf, path); > - > nls_cstring_to_uniname(sb, p_uniname, name_buf, ); > if (lossy) > return FFS_INVALIDPATH; > > - fid->size = i_size_read(inode); > - > +fid->size = i_size_read(inode); And you accidentally deleted some white space here. I use vim, so I have it configured to highlight whitespace at the end of a line. I don't remember how it's done now but I googled it for you. https://vim.fandom.com/wiki/Highlight_unwanted_spaces regards, dan carpenter ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH v4] Staging: exfat: avoid use of strcpy
Replacing strcpy with strscpy and moving the length check to the same function. Suggested-by: Rasmus Villemoes Signed-off-by: Sandro Volery --- Took a couple attempts to finaly get this right :P v4: Replaced strlen check v3: Failed to replace check v2: Forgot to replace strlen check v1: original patch drivers/staging/exfat/exfat_core.c | 9 +++-- 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/drivers/staging/exfat/exfat_core.c b/drivers/staging/exfat/exfat_core.c index da8c58149c35..4336fee444ce 100644 --- a/drivers/staging/exfat/exfat_core.c +++ b/drivers/staging/exfat/exfat_core.c @@ -2960,18 +2960,15 @@ s32 resolve_path(struct inode *inode, char *path, struct chain_t *p_dir, struct super_block *sb = inode->i_sb; struct fs_info_t *p_fs = &(EXFAT_SB(sb)->fs_info); struct file_id_t *fid = &(EXFAT_I(inode)->fid); - - if (strlen(path) >= (MAX_NAME_LENGTH * MAX_CHARSET_SIZE)) + + if (strscpy(name_buf, path, sizeof(name_buf)) < 0) return FFS_INVALIDPATH; - strcpy(name_buf, path); - nls_cstring_to_uniname(sb, p_uniname, name_buf, ); if (lossy) return FFS_INVALIDPATH; - fid->size = i_size_read(inode); - +fid->size = i_size_read(inode); p_dir->dir = fid->start_clu; p_dir->size = (s32)(fid->size >> p_fs->cluster_size_bits); p_dir->flags = fid->flags; -- 2.23.0 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel