diff options
author | Dan Carpenter <error27@gmail.com> | 2010-07-10 00:31:11 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-07-12 23:21:43 -0400 |
commit | 84ce981a076c6b2d3efec66bf92a91d1aa80c983 (patch) | |
tree | 901ef430a4acbab2e2d92a15f7146b9e709e3eb0 /drivers/isdn | |
parent | 5c4bfa17f3ec46becec4b23d12323f7605ebd696 (diff) |
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 <error27@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/isdn')
-rw-r--r-- | drivers/isdn/i4l/isdn_net.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/isdn/i4l/isdn_net.c b/drivers/isdn/i4l/isdn_net.c index 8c85d1e88cc6..26d44c3ca1d8 100644 --- a/drivers/isdn/i4l/isdn_net.c +++ b/drivers/isdn/i4l/isdn_net.c | |||
@@ -2924,16 +2924,17 @@ isdn_net_getcfg(isdn_net_ioctl_cfg * cfg) | |||
2924 | cfg->dialtimeout = lp->dialtimeout >= 0 ? lp->dialtimeout / HZ : -1; | 2924 | cfg->dialtimeout = lp->dialtimeout >= 0 ? lp->dialtimeout / HZ : -1; |
2925 | cfg->dialwait = lp->dialwait / HZ; | 2925 | cfg->dialwait = lp->dialwait / HZ; |
2926 | if (lp->slave) { | 2926 | if (lp->slave) { |
2927 | if (strlen(lp->slave->name) > 8) | 2927 | if (strlen(lp->slave->name) >= 10) |
2928 | strcpy(cfg->slave, "too-long"); | 2928 | strcpy(cfg->slave, "too-long"); |
2929 | else | 2929 | else |
2930 | strcpy(cfg->slave, lp->slave->name); | 2930 | strcpy(cfg->slave, lp->slave->name); |
2931 | } else | 2931 | } else |
2932 | cfg->slave[0] = '\0'; | 2932 | cfg->slave[0] = '\0'; |
2933 | if (lp->master) { | 2933 | if (lp->master) { |
2934 | if (strlen(lp->master->name) > 8) | 2934 | if (strlen(lp->master->name) >= 10) |
2935 | strcpy(cfg->master, "too-long"); | 2935 | strcpy(cfg->master, "too-long"); |
2936 | strcpy(cfg->master, lp->master->name); | 2936 | else |
2937 | strcpy(cfg->master, lp->master->name); | ||
2937 | } else | 2938 | } else |
2938 | cfg->master[0] = '\0'; | 2939 | cfg->master[0] = '\0'; |
2939 | return 0; | 2940 | return 0; |