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

            Bug ID: 1512
           Summary: CID 90144: STRING_OVERFLOW: odp_classifier.c
           Product: OpenDataPlane
           Version: 1.0.3
          Hardware: Other
                OS: Linux
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: ---
         Component: Classification
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected]

*** CID 90144:    (STRING_OVERFLOW)
/example/classifier/odp_classifier.c: 658 in parse_pmr_policy()
652                     usage(argv[0]);
653                     exit(EXIT_FAILURE);
654             }
655
656             /* Queue Name */
657             token = strtok(NULL, ":");
>>>     CID 90144:    (STRING_OVERFLOW)
>>>     You might overrun the 32 byte fixed-size string "(stats + 
>>> policy_count).queue_name" by copying "token" without checking the length.
658             strcpy(stats[policy_count].queue_name, token);
659             appl_args->policy_count++;
660             free(pmr_str);
661             return 0;
662     }
663
/example/classifier/odp_classifier.c: 634 in parse_pmr_policy()
628
629             /* PMR value */
630             switch (term)   {
631             case ODP_PMR_SIP_ADDR:
632                     if (stats[policy_count].match_type == ODP_PMR_MASK) {
633                             token = strtok(NULL, ":");
>>>     CID 90144:    (STRING_OVERFLOW)
>>>     You might overrun the 32 byte fixed-size string "(stats + 
>>> policy_count).value1" by copying "token" without checking the length.
634                             strcpy(stats[policy_count].value1, token);
635                             parse_ipv4_addr(token,
&stats[policy_count].match.val);
636                             token = strtok(NULL, ":");
637                             strcpy(stats[policy_count].value2, token);
638                             parse_ipv4_mask(token,
&stats[policy_count].match.mask);
639                             stats[policy_count].val_sz = 4;
/example/classifier/odp_classifier.c: 642 in parse_pmr_policy()
636                             token = strtok(NULL, ":");
637                             strcpy(stats[policy_count].value2, token);
638                             parse_ipv4_mask(token,
&stats[policy_count].match.mask);
639                             stats[policy_count].val_sz = 4;
640                     } else {
641                             token = strtok(NULL, ":");
>>>     CID 90144:    (STRING_OVERFLOW)
>>>     You might overrun the 32 byte fixed-size string "(stats + 
>>> policy_count).value1" by copying "token" without checking the length.
642                             strcpy(stats[policy_count].value1,
643                                    token);
644                             parse_ipv4_addr(token,
&stats[policy_count].range.val1);
645                             token = strtok(NULL, ":");
646                             strcpy(stats[policy_count].value2, token);
647                             parse_ipv4_addr(token,
&stats[policy_count].range.val2);
/example/classifier/odp_classifier.c: 637 in parse_pmr_policy()
631             case ODP_PMR_SIP_ADDR:
632                     if (stats[policy_count].match_type == ODP_PMR_MASK) {
633                             token = strtok(NULL, ":");
634                             strcpy(stats[policy_count].value1, token);
635                             parse_ipv4_addr(token,
&stats[policy_count].match.val);
636                             token = strtok(NULL, ":");
>>>     CID 90144:    (STRING_OVERFLOW)
>>>     You might overrun the 32 byte fixed-size string "(stats + 
>>> policy_count).value2" by copying "token" without checking the length.
637                             strcpy(stats[policy_count].value2, token);
638                             parse_ipv4_mask(token,
&stats[policy_count].match.mask);
639                             stats[policy_count].val_sz = 4;
640                     } else {
641                             token = strtok(NULL, ":");
642                             strcpy(stats[policy_count].value1,
/example/classifier/odp_classifier.c: 646 in parse_pmr_policy()
640                     } else {
641                             token = strtok(NULL, ":");
642                             strcpy(stats[policy_count].value1,
643                                    token);
644                             parse_ipv4_addr(token,
&stats[policy_count].range.val1);
645                             token = strtok(NULL, ":");
>>>     CID 90144:    (STRING_OVERFLOW)
>>>     You might overrun the 32 byte fixed-size string "(stats + 
>>> policy_count).value2" by copying "token" without checking the length.
646                             strcpy(stats[policy_count].value2, token);
647                             parse_ipv4_addr(token,
&stats[policy_count].range.val2);
648                             stats[policy_count].val_sz = 4;
649                     }
650             break;
651             default:

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
lng-odp mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to