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/ip_input.c
          +++ new/usr/src/uts/common/inet/ip/ip_input.c
↓ open down ↓ 2353 lines elided ↑ open up ↑
2354 2354          ip_hdr_length = ira->ira_ip_hdr_length;
2355 2355          ira->ira_protocol = protocol;
2356 2356  
2357 2357          /*
2358 2358           * Time for IPP once we've done reassembly and IPsec.
2359 2359           * We skip this for loopback packets since we don't do IPQoS
2360 2360           * on loopback.
2361 2361           */
2362 2362          if (IPP_ENABLED(IPP_LOCAL_IN, ipst) &&
2363 2363              !(iraflags & IRAF_LOOPBACK) &&
2364      -            (protocol != IPPROTO_ESP || protocol != IPPROTO_AH)) {
     2364 +            (protocol != IPPROTO_ESP && protocol != IPPROTO_AH)) {
2365 2365                  /*
2366 2366                   * Use the interface on which the packet arrived - not where
2367 2367                   * the IP address is hosted.
2368 2368                   */
2369 2369                  /* ip_process translates an IS_UNDER_IPMP */
2370 2370                  mp = ip_process(IPP_LOCAL_IN, mp, rill, ill);
2371 2371                  if (mp == NULL) {
2372 2372                          /* ip_drop_packet and MIB done */
2373 2373                          return;
2374 2374                  }
↓ open down ↓ 762 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX