bug in lp.c

cox@tass.philips.com
Tue, 27 Jun 1995 10:11:10 +0100


Hi Linus,

Discovered a bug in the undermentioned function.
The expression (LP_F(offset) && LP_EXIST) must be
(LP_F(offset) & LP_EXIST).

void cleanup_module(void)
{
int offset;
if(MOD_IN_USE)
printk("lp: busy - remove delayed\n");
else {
unregister_chrdev(LP_MAJOR,"lp");
for (offset = 0; offset < LP_NO; offset++)
if(LP_F(offset) && LP_EXIST) <--BUG: && must be &
release_region(LP_B(offset),3);
}
}

This bug is in kernel versions up to v1.3.4

I Didn't test anything, just take a look at the lp code.

Ruud Cox
cox@tass.philips.com