lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20100701173805.GW19184@bicker>
Date:	Thu, 1 Jul 2010 19:38:05 +0200
From:	Dan Carpenter <error27@...il.com>
To:	Kulikov Vasiliy <segooon@...il.com>
Cc:	Kernel Janitors <kernel-janitors@...r.kernel.org>,
	Doug Gilbert <dgilbert@...erlog.com>,
	"James E.J. Bottomley" <James.Bottomley@...e.de>,
	Andrew Morton <akpm@...ux-foundation.org>,
	FUJITA Tomonori <fujita.tomonori@....ntt.co.jp>,
	Jens Axboe <jens.axboe@...cle.com>,
	Alexey Dobriyan <adobriyan@...il.com>,
	linux-scsi@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 10/25] scsi/sg: remove casts from void*

On Thu, Jul 01, 2010 at 05:16:43PM +0400, Kulikov Vasiliy wrote:
> -	Sg_fd *sfp;
> +	Sg_fd *sfp = filp->private_data;
                     ^^^^^^^^^^^^^^^^^^
	Dereferenced here.

>  	unsigned long req_sz, len, sa;
>  	Sg_scatter_hold *rsv_schp;
>  	int k, length;
>  
> -	if ((!filp) || (!vma) || (!(sfp = (Sg_fd *) filp->private_data)))
> +	if ((!filp) || (!vma) || !(sfp))
             ^^^^^

	Checked here.

I obviously just spotted that during the review but another way would be
to use smatch to catch these.  (http://smatch.sf.net)

$ /path/to/smatch_scripts/kchecker drivers/scsi/sg.c
  CHK     include/linux/version.h
  CHK     include/generated/utsrelease.h
  CALL    scripts/checksyscalls.sh
  CHECK   drivers/scsi/sg.c
drivers/scsi/sg.c +1236 sg_mmap(7) warn: variable dereferenced before check 'filp'
  CC [M]  drivers/scsi/sg.o
$

You could also get rid of the extra parenthesis.
+	if (!filp || !vma || !sfp)

>  		return -ENXIO;
>  	req_sz = vma->vm_end - vma->vm_start;
>  	SCSI_LOG_TIMEOUT(3, printk("sg_mmap starting, vm_start=%p, len=%d\n",

Btw.  These are _way_ better than when you sent them the first time.
Thanks for doing resending them.

regards,
dan carpenter

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ