Add logging code for out-of-bounds buffer addresses

This commit is contained in:
Matthew R. Wilson committed 2020-12-27 01:31:20 -08:00
1 parent 123df70716
commit f01cf72d6d
1 file changed
+13
+13
View File
@@ -6,7 +6,9 @@ package go3270
import (
"bytes"
"fmt"
"net"
"os"
)
// Response encapsulates data received from a 3270 client in response to the
@@ -210,6 +212,17 @@ func handleField(addr int, value []byte, fm fieldmap, values map[string]string)
// decodeBufAddr decodes a raw 2-byte encoded buffer address and returns the
// integer value of the address (i.e. 0-1919)
func decodeBufAddr(raw [2]byte) int {
if decodes[raw[0]]<<6 > 254 {
fmt.Fprintf(os.Stderr,
"UNEXPECTED VALUE: decodeBufAddr got raw value of %02x %02x\n",
raw[0], raw[1])
}
if decodes[raw[1]] > 254 {
fmt.Fprintf(os.Stderr,
"UNEXPECTED VALUE: decodeBufAddr got raw value of %02x %02x\n",
raw[0], raw[1])
}
hi := decodes[raw[0]] << 6
lo := decodes[raw[1]]
return hi | lo