|
@@ -576,6 +576,8 @@ static int hdlcdrv_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
|
|
case HDLCDRVCTL_CALIBRATE:
|
|
case HDLCDRVCTL_CALIBRATE:
|
|
if(!capable(CAP_SYS_RAWIO))
|
|
if(!capable(CAP_SYS_RAWIO))
|
|
return -EPERM;
|
|
return -EPERM;
|
|
|
|
+ if (s->par.bitrate <= 0)
|
|
|
|
+ return -EINVAL;
|
|
if (bi.data.calibrate > INT_MAX / s->par.bitrate)
|
|
if (bi.data.calibrate > INT_MAX / s->par.bitrate)
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
s->hdlctx.calibrate = bi.data.calibrate * s->par.bitrate / 16;
|
|
s->hdlctx.calibrate = bi.data.calibrate * s->par.bitrate / 16;
|