Uploaded image for project: 'ONOS'
  1. ONOS
  2. ONOS-779

NullPointerException thrown while deserializing malformed BDDP packets

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Critical
    • Resolution: Done
    • Affects Version/s: 1.0.0
    • Fix Version/s: 1.0.1, 1.1.0
    • Component/s: None
    • Labels:
      None

      Description

      There is another vulnerability in the packet deserializers which can cause NullPointerExceptions to be thrown, which in turn causes ONOS to disconnect the switch. Similar to ONOS-605.

      2015-01-20 20:17:34,412 | ERROR | w I/O worker #13 | OFChannelHandler                 | 136 - org.onosproject.onos-of-ctl - 1.0.1.SNAPSHOT | Error while processing message from switch org.onosproject.openflow.drivers.DriverManager$1@92a6745state ACTIVE
      java.lang.NullPointerException
              at org.onlab.packet.LLDPOrganizationalTLV.deserialize(LLDPOrganizationalTLV.java:159)
              at org.onlab.packet.LLDP.deserialize(LLDP.java:141)
              at org.onlab.packet.Ethernet.deserialize(Ethernet.java:344)
              at org.onosproject.openflow.controller.DefaultOpenFlowPacketContext.parsed(DefaultOpenFlowPacketContext.java:90)
              at org.onosproject.provider.of.packet.impl.OpenFlowPacketProvider$InternalPacketProvider.handlePacket(OpenFlowPacketProvider.java:159)
              at org.onosproject.openflow.controller.impl.OpenFlowControllerImpl.processPacket(OpenFlowControllerImpl.java:194)
              at org.onosproject.openflow.controller.impl.OpenFlowControllerImpl$OpenFlowSwitchAgent.processMessage(OpenFlowControllerImpl.java:413)
              at org.onosproject.openflow.controller.driver.AbstractOpenFlowSwitch.handleMessage(AbstractOpenFlowSwitch.java:192)
              at org.onosproject.openflow.controller.impl.OFChannelHandler.dispatchMessage(OFChannelHandler.java:1169)
              at org.onosproject.openflow.controller.impl.OFChannelHandler.access$1800(OFChannelHandler.java:81)
              at org.onosproject.openflow.controller.impl.OFChannelHandler$ChannelState$8.processOFPacketIn(OFChannelHandler.java:623)
              at org.onosproject.openflow.controller.impl.OFChannelHandler$ChannelState.processOFMessage(OFChannelHandler.java:871)
              at org.onosproject.openflow.controller.impl.OFChannelHandler.messageReceived(OFChannelHandler.java:1150)
              at org.jboss.netty.handler.timeout.IdleStateAwareChannelHandler.handleUpstream(IdleStateAwareChannelHandler.java:36)[43:org.jboss.netty:3.9.2.Final]
              at org.jboss.netty.handler.timeout.ReadTimeoutHandler.messageReceived(ReadTimeoutHandler.java:184)[43:org.jboss.netty:3.9.2.Final]
              at org.jboss.netty.handler.timeout.IdleStateHandler.messageReceived(IdleStateHandler.java:294)[43:org.jboss.netty:3.9.2.Final]
              at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)[43:org.jboss.netty:3.9.2.Final]
              at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:462)[43:org.jboss.netty:3.9.2.Final]
              at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:443)[43:org.jboss.netty:3.9.2.Final]
              at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303)[43:org.jboss.netty:3.9.2.Final]
              at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)[43:org.jboss.netty:3.9.2.Final]
              at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)[43:org.jboss.netty:3.9.2.Final]
              at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)[43:org.jboss.netty:3.9.2.Final]
              at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:108)[43:org.jboss.netty:3.9.2.Final]
              at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:318)
              at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89)[43:org.jboss.netty:3.9.2.Final]
              at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)[43:org.jboss.netty:3.9.2.Final]
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_25]
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_25]
              at java.lang.Thread.run(Thread.java:745)[:1.8.0_25]
      

        Attachments

        # Subject Branch Project Status CR V

          Activity

            People

            Assignee:
            jono Jonathan Hart
            Reporter:
            jono Jonathan Hart
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: