isdn: fix strlen() usage
Subsystems (3)
PATCH 1/1 isdn: fix strlen() usage
There was a missing "else" statement so the original code overflowed if ->master->name was too long. Also the ->slave and ->master buffers can hold names with 9 characters and a NULL so I cleaned it up to allow another character.
Signed-off-by Dan Carpenter <[email protected]>
drivers/isdn/i4l/isdn_net.c +4 -3
@@ -2924,16 +2924,17 @@ isdn_net_getcfg(isdn_net_ioctl_cfg * cfg) cfg->dialtimeout = lp->dialtimeout >=0 ? lp->dialtimeout /HZ :-1 ; cfg->dialwait = lp->dialwait /HZ ;if (lp->slave) { -if (strlen (lp->slave->name) >8 ) +if (strlen (lp->slave->name) >=10 )strcpy (cfg->slave,"too-long" );else strcpy (cfg->slave, lp->slave->name); }else cfg->slave[0 ] ='\0' ;if (lp->master) { -if (strlen (lp->master->name) >8 ) +if (strlen (lp->master->name) >=10 )strcpy (cfg->master,"too-long" ); -strcpy (cfg->master, lp->master->name); +else +strcpy (cfg->master, lp->master->name); }else cfg->master[0 ] ='\0' ;return 0 ;
From: Dan Carpenter <[email protected]>
Date: Sat, 10 Jul 2010 16:31:11 +0200
Quoted 6 lines
There was a missing "else" statement so the original code overflowed if ->master->name was too long. Also the ->slave and ->master buffers can hold names with 9 characters and a NULL so I cleaned it up to allow another character.
Signed-off-by Dan Carpenter <[email protected]>
Applied.