isdn_net_dev *p;
isdn_net_phone *n;
ulong flags;
- char nr[32];
+ char nr[ISDN_MSNLEN];
char *my_eaz;
/* Search name in netdev-chain */
nr[0] = '0';
nr[1] = '\0';
printk(KERN_INFO "isdn_net: Incoming call without OAD, assuming '0'\n");
- } else
- strcpy(nr, setup->phone);
+ } else {
+ strncpy(nr, setup->phone, ISDN_MSNLEN - 1);
+ nr[ISDN_MSNLEN - 1] = 0;
+ }
si1 = (int) setup->si1;
si2 = (int) setup->si2;
if (!setup->eazmsn[0]) {
chidx = -1;
}
}
- strcpy(lp->msn, cfg->eaz);
+ strncpy(lp->msn, cfg->eaz, sizeof(lp->msn) - 1);
+ lp->msn[sizeof(lp->msn) - 1] = 0;
lp->pre_device = drvidx;
lp->pre_channel = chidx;
lp->onhtime = cfg->onhtime;
if (p) {
if (!(n = (isdn_net_phone *) kmalloc(sizeof(isdn_net_phone), GFP_KERNEL)))
return -ENOMEM;
- strcpy(n->num, phone->phone);
+ strncpy(n->num, phone->phone, sizeof(n->num) - 1);
+ n->num[sizeof(n->num) - 1] = 0;
n->next = p->local->phone[phone->outgoing & 1];
p->local->phone[phone->outgoing & 1] = n;
return 0;