提交 f9a23c84 编写于 作者: D Dan Carpenter 提交者: David S. Miller

isdnloop: use strlcpy() instead of strcpy()

These strings come from a copy_from_user() and there is no way to be
sure they are NUL terminated.
Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 9434266f
...@@ -1083,8 +1083,10 @@ isdnloop_start(isdnloop_card *card, isdnloop_sdef *sdefp) ...@@ -1083,8 +1083,10 @@ isdnloop_start(isdnloop_card *card, isdnloop_sdef *sdefp)
spin_unlock_irqrestore(&card->isdnloop_lock, flags); spin_unlock_irqrestore(&card->isdnloop_lock, flags);
return -ENOMEM; return -ENOMEM;
} }
for (i = 0; i < 3; i++) for (i = 0; i < 3; i++) {
strcpy(card->s0num[i], sdef.num[i]); strlcpy(card->s0num[i], sdef.num[i],
sizeof(card->s0num[0]));
}
break; break;
case ISDN_PTYPE_1TR6: case ISDN_PTYPE_1TR6:
if (isdnloop_fake(card, "DRV1.04TC-1TR6-CAPI-CNS-BASIS-29.11.95", if (isdnloop_fake(card, "DRV1.04TC-1TR6-CAPI-CNS-BASIS-29.11.95",
...@@ -1097,7 +1099,7 @@ isdnloop_start(isdnloop_card *card, isdnloop_sdef *sdefp) ...@@ -1097,7 +1099,7 @@ isdnloop_start(isdnloop_card *card, isdnloop_sdef *sdefp)
spin_unlock_irqrestore(&card->isdnloop_lock, flags); spin_unlock_irqrestore(&card->isdnloop_lock, flags);
return -ENOMEM; return -ENOMEM;
} }
strcpy(card->s0num[0], sdef.num[0]); strlcpy(card->s0num[0], sdef.num[0], sizeof(card->s0num[0]));
card->s0num[1][0] = '\0'; card->s0num[1][0] = '\0';
card->s0num[2][0] = '\0'; card->s0num[2][0] = '\0';
break; break;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册