mirror of
https://github.com/torvalds/linux.git
synced 2024-11-25 05:32:00 +00:00
drivers/isdn: checkng length to be sure not memory overflow
sizeof (cmd.parm.cmsg.para) is 50 (MAX_CAPI_PARA_LEN). sizeof (cmd.parm) is 80+, but less than 100. strlen(msg) may be more than 80+ (Modem-Commandbuffer, less than 255). isdn_tty_send_msg is called by isdn_tty_parse_at the relative parameter is m->mdmcmd (atemu *m) the relative command may be "+M..." so need check the length to be sure not memory overflow. cmd.parm is a union, and need keep original valid buffer length no touch Signed-off-by: Chen Gang <gang.chen@asianux.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
2e85d67690
commit
f39479363e
@ -902,7 +902,9 @@ isdn_tty_send_msg(modem_info *info, atemu *m, char *msg)
|
||||
int j;
|
||||
int l;
|
||||
|
||||
l = strlen(msg);
|
||||
l = min(strlen(msg), sizeof(cmd.parm) - sizeof(cmd.parm.cmsg)
|
||||
+ sizeof(cmd.parm.cmsg.para) - 2);
|
||||
|
||||
if (!l) {
|
||||
isdn_tty_modem_result(RESULT_ERROR, info);
|
||||
return;
|
||||
|
Loading…
Reference in New Issue
Block a user