[linux-cifs-client] Re: cifs_mount() contains strange code

Dave Jones davej at codemonkey.org.uk
Thu Mar 27 21:53:40 GMT 2008


On Thu, Mar 27, 2008 at 07:34:58PM +0200, Adrian Bunk wrote:
 > This looks somehow fishy (note the "rc" settings):
 > 
 > <--  snip  -->
 > 
 > ...
 > int
 > cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb,
 >            char *mount_data, const char *devname)
 > {
 > ...
 >                                 /* BB check if this works for exactly length
 >                                  * three strings */
 >                                 if ((strchr(volume_info.UNC + 3, '\\') == NULL)
 >                                     && (strchr(volume_info.UNC + 3, '/') ==
 >                                         NULL)) {
 >                                         rc = connect_to_dfs_path(xid, pSesInfo,
 >                                                 "", cifs_sb->local_nls,
 >                                                 cifs_sb->mnt_cifs_flags &
 >                                                   CIFS_MOUNT_MAP_SPECIAL_CHR);
 >                                         rc = -ENODEV;
 >                                         goto out;
 > 
 > <--  snip  -->

I've noticed a bunch of things like that from time to time, and wondered
how useful it would be to have sparse warn on double assignments of variables
without a read inbetween.

	Dave

-- 
http://www.codemonkey.org.uk


More information about the linux-cifs-client mailing list