diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2015-02-01 23:54:25 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-02-02 19:33:18 -0800 |
commit | c101cff9010083a8796353a75673fd100b077b79 (patch) | |
tree | 34624bfa19044077adcc511bef57c764ef1f49ee | |
parent | 3ae55826ae15cfb3bfa58d0dac29c53fc5fd1088 (diff) | |
download | op-kernel-dev-c101cff9010083a8796353a75673fd100b077b79.zip op-kernel-dev-c101cff9010083a8796353a75673fd100b077b79.tar.gz |
isdn: off by one in connect_res()
The bug here is that we use "Reject" as the index into the cau_t[] array
in the else path. Since the cau_t[] has 9 elements if Reject == 9 then
we are reading beyond the end of the array.
My understanding of the code is that it's saying that if Reject is 1 or
too high then that's invalid and we should hang up.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/isdn/hardware/eicon/message.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/isdn/hardware/eicon/message.c b/drivers/isdn/hardware/eicon/message.c index 0b38060..d7c2866 100644 --- a/drivers/isdn/hardware/eicon/message.c +++ b/drivers/isdn/hardware/eicon/message.c @@ -1474,7 +1474,7 @@ static byte connect_res(dword Id, word Number, DIVA_CAPI_ADAPTER *a, add_ai(plci, &parms[5]); sig_req(plci, REJECT, 0); } - else if (Reject == 1 || Reject > 9) + else if (Reject == 1 || Reject >= 9) { add_ai(plci, &parms[5]); sig_req(plci, HANGUP, 0); |