Re: cifs_mount() contains strange code

From: Dave Jones
Date: Thu Mar 27 2008 - 17:54:19 EST


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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/