https://bugs.linaro.org/show_bug.cgi?id=2910

            Bug ID: 2910
           Summary: odph_iplookup_table_put_value() uses overlapping
                    pointer addresses
           Product: OpenDataPlane - linux- generic reference
           Version: master
          Hardware: x86
                OS: Linux
            Status: UNCONFIRMED
          Severity: major
          Priority: ---
         Component: Helpers
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected]
  Target Milestone: ---

The value of odp_buffer_t *buff in function odph_iplookup_table_put_value()
clashes with the table entry impl->l1e[24916] when cidr > 16. The validation
test passes on odp-linux (lucky?) but fails on odp-dpdk when using 1G
hugepages.

Relevant code in odph_iplookup_table_put_value():

        /* get L1 entry */
        l1e = &impl->l1e[prefix->ip >> 16];
        odp_buffer_t *buff = ENTRY_BUFF_ARR(impl->l1e) + (prefix->ip >> 16);

        printf("Buff ptr:    %p\n", buff);
        printf("Entry addr:  %p\n", &impl->l1e[24916]);

The odp-dpdk validation test crashes on odph_iplookup_table_destroy() as the
value of impl->l1e[24916] has overwritten.

-- 
You are receiving this mail because:
You are the assignee for the bug.
You are on the CC list for the bug.

Reply via email to