[ https://issues.apache.org/jira/browse/ZOOKEEPER-2146?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14500927#comment-14500927 ]
Hongchao Deng commented on ZOOKEEPER-2146: ------------------------------------------ Since [~rgs] also reviewed it, can you help get this into branch-3.4? Thanks! > BinaryInputArchive readString should check length before allocating memory > -------------------------------------------------------------------------- > > Key: ZOOKEEPER-2146 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2146 > Project: ZooKeeper > Issue Type: Bug > Reporter: Hongchao Deng > Assignee: Hongchao Deng > Fix For: 3.5.1, 3.6.0 > > Attachments: ZOOKEEPER-2146.patch, ZOOKEEPER-2146.patch, > ZOOKEEPER-2146.patch, ZOOKEEPER-2146.patch, ZOOKEEPER-2146.patch > > > I recently observed a problem caused by malformed packets. ZK server crashed > because of OutOfMemoryError. > The reason is BinaryInputArchive didn't check the length before allocating > memory in readString(): > {code} > public String readString(String tag) throws IOException { > int len = in.readInt(); > if (len == -1) return null; > byte b[] = new byte[len]; > ... > {code} > I suggest to add the same check as in readBuffer. -- This message was sent by Atlassian JIRA (v6.3.4#6332)