Print this page
8903 IPPF paths have bad logic
Reviewed by: Dan McDonald <danmcd@joyent.com>
Reviewed by: John Levon <levon@movementarian.org>
Reviewed by: Gergő Doma <domag02@gmail.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/inet/ip/ip6_input.c
          +++ new/usr/src/uts/common/inet/ip/ip6_input.c
↓ open down ↓ 2013 lines elided ↑ open up ↑
2014 2014          protocol = ira->ira_protocol;
2015 2015          ip_hdr_length = ira->ira_ip_hdr_length;
2016 2016  
2017 2017          /*
2018 2018           * Time for IPP once we've done reassembly and IPsec.
2019 2019           * We skip this for loopback packets since we don't do IPQoS
2020 2020           * on loopback.
2021 2021           */
2022 2022          if (IPP_ENABLED(IPP_LOCAL_IN, ipst) &&
2023 2023              !(iraflags & IRAF_LOOPBACK) &&
2024      -            (protocol != IPPROTO_ESP || protocol != IPPROTO_AH ||
2025      -            protocol != IPPROTO_DSTOPTS || protocol != IPPROTO_ROUTING ||
     2024 +            (protocol != IPPROTO_ESP && protocol != IPPROTO_AH &&
     2025 +            protocol != IPPROTO_DSTOPTS && protocol != IPPROTO_ROUTING &&
2026 2026              protocol != IPPROTO_FRAGMENT)) {
2027 2027                  /*
2028 2028                   * Use the interface on which the packet arrived - not where
2029 2029                   * the IP address is hosted.
2030 2030                   */
2031 2031                  /* ip_process translates an IS_UNDER_IPMP */
2032 2032                  mp = ip_process(IPP_LOCAL_IN, mp, rill, ill);
2033 2033                  if (mp == NULL) {
2034 2034                          /* ip_drop_packet and MIB done */
2035 2035                          return;
↓ open down ↓ 732 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX