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>] [day] [month] [year] [list]
Message-ID: <20070427224334.1aa1ed4b@the-village.bc.nu>
Date:	Fri, 27 Apr 2007 22:43:34 +0100
From:	Alan Cox <alan@...rguk.ukuu.org.uk>
To:	Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Cc:	torvalds@...l.org
Subject: BAD PATCH: IDE: remove rwsem use from ide-proc core

> -	down_read(&dev->bus->subsys.rwsem);
>  	if (dev->driver) {
>  		ide_drv = container_of(dev->driver, ide_driver_t, gen_driver);
>  		len = sprintf(page, "%s version %s\n",
>  				dev->driver->name, ide_drv->version);
>  	} else
>  		len = sprintf(page, "ide-default version 0.9.newide\n");
> -	up_read(&dev->bus->subsys.rwsem);
>  	PROC_IDE_READ_RETURN(page,start,off,count,eof,len);

The semaphore is used to ensure dev->driver doesn't change under us. This
patch appears to remove the neccessary locking without replacing it with
anything viable. A local lock would do but the simple removal appears to
be unsafe.


> @@ -327,7 +325,6 @@ static int ide_replace_subdriver(ide_drive_t *drive, const char *driver)
>  	int ret = 1;
>  	int err;
>  
> -	down_write(&dev->bus->subsys.rwsem);
>  	device_release_driver(dev);
>  	/* FIXME: device can still be in use by previous driver */
>  	strlcpy(drive->driver_req, driver, sizeof(drive->driver_req));
> @@ -345,7 +342,6 @@ static int ide_replace_subdriver(ide_drive_t *drive, const char *driver)
>  	}
>  	if (dev->driver && !strcmp(dev->driver->name, driver))
>  		ret = 0;
> -	up_write(&dev->bus->subsys.rwsem);

-
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