-*- mode: compilation; default-directory: "/home/sarnold/ubuntu/security/audits/libpgm/eoan/libpgm-5.2.122~dfsg"; -*- note: for more detailed analysis of each of the following errors, please commit the analysis from to the coverity platform server via cov-commit-defects and then browse via the platform server web interface. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/error.c:96 Checker: RESOURCE_LEAK /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/error.c:85: 1. path: Condition "NULL == err", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/error.c:89: 2. alloc_fn: Storage is returned from allocation function "pgm_error_new_valist". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/error.c:56: 2.1. alloc_fn: Storage is returned from allocation function "pgm_malloc_n". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:186: 2.1.1. path: Condition "n_blocks > 18446744073709551615UL / block_bytes", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:186: 2.1.2. path: Condition "n_blocks > 18446744073709551615UL / block_bytes", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:197: 2.1.3. alloc_fn: Storage is returned from allocation function "pgm_malloc". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:158: 2.1.3.1. path: Condition "n_bytes", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:160: 2.1.3.2. alloc_fn: Storage is returned from allocation function "malloc". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:160: 2.1.3.3. assign: Assigning: "mem" = "malloc(n_bytes)". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:161: 2.1.3.4. path: Condition "mem", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:162: 2.1.3.5. return_alloc: Returning allocated memory "mem". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:197: 2.1.4. return_alloc_fn: Directly returning storage allocated by "pgm_malloc". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/error.c:56: 2.2. assign: Assigning: "error" = "(pgm_error_t *)pgm_malloc_n(16UL, 1UL)". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/error.c:60: 2.3. return_alloc: Returning allocated memory "error". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/error.c:89: 3. var_assign: Assigning: "new_err" = storage returned from "pgm_error_new_valist(error_domain, error_code, format, args)". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/error.c:92: 4. path: Condition "NULL == *err", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/error.c:95: 5. path: Condition "pgm_min_log_level <= PGM_LOG_LEVEL_WARNING", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/error.c:96: 6. leaked_storage: Variable "new_err" going out of scope leaks the storage it points to. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnetbyname.c:69 Checker: RESOURCE_LEAK /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnetbyname.c:61: 1. path: Condition "NULL == netfh", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnetbyname.c:67: 2. alloc_arg: "pgm_dupenv_s" allocates memory that is stored into "netdb". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/include/impl/security.h:208: 2.1. path: Condition "NULL == val", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/include/impl/security.h:213: 2.2. alloc_fn: Storage is returned from allocation function "pgm_strdup". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:51: 2.2.1. path: Condition "NULL != str", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:51: 2.2.2. path: Condition "NULL != str", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:54: 2.2.3. alloc_fn: Storage is returned from allocation function "pgm_malloc". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:158: 2.2.3.1. path: Condition "n_bytes", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:160: 2.2.3.2. alloc_fn: Storage is returned from allocation function "malloc". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:160: 2.2.3.3. assign: Assigning: "mem" = "malloc(n_bytes)". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:161: 2.2.3.4. path: Condition "mem", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:162: 2.2.3.5. return_alloc: Returning allocated memory "mem". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:54: 2.2.4. assign: Assigning: "new_str" = "pgm_malloc(length)". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:55: 2.2.5. noescape: Resource "new_str" is not freed or pointed-to in function "memcpy". [Note: The source code implementation of the function has been overridden by a builtin model.] /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:56: 2.2.6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:60: 2.2.7. return_alloc: Returning allocated memory "new_str". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/include/impl/security.h:213: 2.3. assign: Assigning: "*buffer" = "pgm_strdup(val)". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/include/impl/security.h:215: 2.4. path: Condition "NULL == *buffer", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnetbyname.c:68: 3. path: Condition "0 != err", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnetbyname.c:68: 4. path: Condition "0 == envlen", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnetbyname.c:69: 5. overwrite_var: Overwriting "netdb" in "netdb = pgm_strdup("/etc/networks")" leaks the storage that "netdb" points to. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:251 Checker: RESOURCE_LEAK /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:244: 1. alloc_arg: "pgm_getnodeaddr" allocates memory that is stored into "result". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:61: 1.1. path: Condition "2 == family", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:61: 1.2. path: Condition "2 == family || 10 == family || 0 == family", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:61: 1.3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:62: 1.4. path: Condition "NULL != res", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:62: 1.5. path: Condition "NULL != res", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:62: 1.6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:63: 1.7. path: Condition "0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:69: 1.8. path: Condition "0 != gethostname(hostname, 1025UL /* sizeof (hostname) */)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:90: 1.9. path: Condition "0 == e", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:126: 1.10. path: Condition "-2 != e", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:134: 1.11. path: Condition "0 == family", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:149: 1.12. path: Condition "NULL == he", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:165: 1.13. path: Condition "!pgm_getifaddrs(&ifap, error)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:172: 1.14. path: Condition "ifa", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:174: 1.15. path: Condition "NULL == ifa->ifa_addr", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:176: 1.16. path: Continuing loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:172: 1.17. path: Condition "ifa", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:174: 1.18. path: Condition "NULL == ifa->ifa_addr", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:174: 1.19. path: Condition "2 != ifa->ifa_addr->sa_family", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:177: 1.20. path: Condition "((struct sockaddr_in *)ifa->ifa_addr)->sin_addr.s_addr == ((struct in_addr *)he->h_addr_list[0])->s_addr", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:179: 1.21. path: Jumping to label "ipv4_found". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:191: 1.22. path: Condition "ifa6", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:193: 1.23. path: Condition "10 != ifa6->ifa_addr->sa_family", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:194: 1.24. path: Continuing loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:191: 1.25. path: Condition "ifa6", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:193: 1.26. path: Condition "10 != ifa6->ifa_addr->sa_family", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:195: 1.27. path: Condition "0 == strcmp(ifa->ifa_name, ifa6->ifa_name)", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:197: 1.28. path: Jumping to label "ipv6_found". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:209: 1.29. alloc_fn: Storage is returned from allocation function "pgm_malloc0". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:205: 1.29.1. path: Condition "n_bytes", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:207: 1.29.2. alloc_fn: Storage is returned from allocation function "calloc". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:207: 1.29.3. assign: Assigning: "mem" = "calloc(1UL, n_bytes)". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:208: 1.29.4. path: Condition "mem", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:209: 1.29.5. return_alloc: Returning allocated memory "mem". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:209: 1.30. assign: Assigning: "na" = "pgm_malloc0(na_len)". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:215: 1.31. assign: Assigning: "*res" = "na". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:244: 2. path: Condition "!pgm_getnodeaddr(family, &result, error)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:250: 3. path: Condition "NULL == result->ai_next", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:251: 4. path: Condition "cnt >= (socklen_t)result->ai_addrlen", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:251: 5. path: Condition "cnt >= (socklen_t)result->ai_addrlen", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:251: 6. path: Condition "pgm_min_log_level <= PGM_LOG_LEVEL_WARNING", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:251: 7. leaked_storage: Variable "result" going out of scope leaks the storage it points to. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:259 Checker: RESOURCE_LEAK /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:244: 1. alloc_arg: "pgm_getnodeaddr" allocates memory that is stored into "result". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:61: 1.1. path: Condition "2 == family", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:61: 1.2. path: Condition "2 == family || 10 == family || 0 == family", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:61: 1.3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:62: 1.4. path: Condition "NULL != res", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:62: 1.5. path: Condition "NULL != res", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:62: 1.6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:63: 1.7. path: Condition "0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:69: 1.8. path: Condition "0 != gethostname(hostname, 1025UL /* sizeof (hostname) */)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:90: 1.9. path: Condition "0 == e", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:126: 1.10. path: Condition "-2 != e", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:134: 1.11. path: Condition "0 == family", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:149: 1.12. path: Condition "NULL == he", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:165: 1.13. path: Condition "!pgm_getifaddrs(&ifap, error)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:172: 1.14. path: Condition "ifa", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:174: 1.15. path: Condition "NULL == ifa->ifa_addr", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:176: 1.16. path: Continuing loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:172: 1.17. path: Condition "ifa", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:174: 1.18. path: Condition "NULL == ifa->ifa_addr", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:174: 1.19. path: Condition "2 != ifa->ifa_addr->sa_family", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:177: 1.20. path: Condition "((struct sockaddr_in *)ifa->ifa_addr)->sin_addr.s_addr == ((struct in_addr *)he->h_addr_list[0])->s_addr", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:179: 1.21. path: Jumping to label "ipv4_found". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:191: 1.22. path: Condition "ifa6", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:193: 1.23. path: Condition "10 != ifa6->ifa_addr->sa_family", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:194: 1.24. path: Continuing loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:191: 1.25. path: Condition "ifa6", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:193: 1.26. path: Condition "10 != ifa6->ifa_addr->sa_family", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:195: 1.27. path: Condition "0 == strcmp(ifa->ifa_name, ifa6->ifa_name)", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:197: 1.28. path: Jumping to label "ipv6_found". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:209: 1.29. alloc_fn: Storage is returned from allocation function "pgm_malloc0". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:205: 1.29.1. path: Condition "n_bytes", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:207: 1.29.2. alloc_fn: Storage is returned from allocation function "calloc". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:207: 1.29.3. assign: Assigning: "mem" = "calloc(1UL, n_bytes)". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:208: 1.29.4. path: Condition "mem", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:209: 1.29.5. return_alloc: Returning allocated memory "mem". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:209: 1.30. assign: Assigning: "na" = "pgm_malloc0(na_len)". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:215: 1.31. assign: Assigning: "*res" = "na". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:244: 2. path: Condition "!pgm_getnodeaddr(family, &result, error)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:250: 3. path: Condition "NULL == result->ai_next", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:256: 4. path: Condition "!pgm_getifaddrs(&ifap, error)", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:259: 5. leaked_storage: Variable "result" going out of scope leaks the storage it points to. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:271 Checker: RESOURCE_LEAK /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:244: 1. alloc_arg: "pgm_getnodeaddr" allocates memory that is stored into "result". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:61: 1.1. path: Condition "2 == family", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:61: 1.2. path: Condition "2 == family || 10 == family || 0 == family", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:61: 1.3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:62: 1.4. path: Condition "NULL != res", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:62: 1.5. path: Condition "NULL != res", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:62: 1.6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:63: 1.7. path: Condition "0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:69: 1.8. path: Condition "0 != gethostname(hostname, 1025UL /* sizeof (hostname) */)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:90: 1.9. path: Condition "0 == e", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:126: 1.10. path: Condition "-2 != e", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:134: 1.11. path: Condition "0 == family", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:149: 1.12. path: Condition "NULL == he", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:165: 1.13. path: Condition "!pgm_getifaddrs(&ifap, error)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:172: 1.14. path: Condition "ifa", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:174: 1.15. path: Condition "NULL == ifa->ifa_addr", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:176: 1.16. path: Continuing loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:172: 1.17. path: Condition "ifa", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:174: 1.18. path: Condition "NULL == ifa->ifa_addr", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:174: 1.19. path: Condition "2 != ifa->ifa_addr->sa_family", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:177: 1.20. path: Condition "((struct sockaddr_in *)ifa->ifa_addr)->sin_addr.s_addr == ((struct in_addr *)he->h_addr_list[0])->s_addr", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:179: 1.21. path: Jumping to label "ipv4_found". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:191: 1.22. path: Condition "ifa6", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:193: 1.23. path: Condition "10 != ifa6->ifa_addr->sa_family", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:194: 1.24. path: Continuing loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:191: 1.25. path: Condition "ifa6", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:193: 1.26. path: Condition "10 != ifa6->ifa_addr->sa_family", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:195: 1.27. path: Condition "0 == strcmp(ifa->ifa_name, ifa6->ifa_name)", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:197: 1.28. path: Jumping to label "ipv6_found". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:209: 1.29. alloc_fn: Storage is returned from allocation function "pgm_malloc0". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:205: 1.29.1. path: Condition "n_bytes", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:207: 1.29.2. alloc_fn: Storage is returned from allocation function "calloc". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:207: 1.29.3. assign: Assigning: "mem" = "calloc(1UL, n_bytes)". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:208: 1.29.4. path: Condition "mem", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:209: 1.29.5. return_alloc: Returning allocated memory "mem". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:209: 1.30. assign: Assigning: "na" = "pgm_malloc0(na_len)". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:215: 1.31. assign: Assigning: "*res" = "na". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:244: 2. path: Condition "!pgm_getnodeaddr(family, &result, error)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:250: 3. path: Condition "NULL == result->ai_next", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:256: 4. path: Condition "!pgm_getifaddrs(&ifap, error)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:262: 5. var_assign: Assigning: "res" = "result". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:262: 6. path: Condition "NULL != res", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:265: 7. path: Condition "ifa", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:267: 8. path: Condition "NULL == ifa->ifa_addr", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:269: 9. path: Continuing loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:265: 10. path: Condition "ifa", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:267: 11. path: Condition "NULL == ifa->ifa_addr", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:267: 12. path: Condition "0 != pgm_sockaddr_cmp(ifa->ifa_addr, res->ai_addr)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:270: 13. path: Condition "ifa->ifa_flags & IFF_MULTICAST", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:271: 14. path: Condition "cnt >= (socklen_t)res->ai_addrlen", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:271: 15. path: Condition "cnt >= (socklen_t)res->ai_addrlen", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:271: 16. path: Condition "pgm_min_log_level <= PGM_LOG_LEVEL_WARNING", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:271: 17. leaked_storage: Variable "res" going out of scope leaks the storage it points to. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:271: 18. leaked_storage: Variable "result" going out of scope leaks the storage it points to. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:271 Checker: RESOURCE_LEAK /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:244: 1. alloc_arg: "pgm_getnodeaddr" allocates memory that is stored into "result". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:61: 1.1. path: Condition "2 == family", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:61: 1.2. path: Condition "2 == family || 10 == family || 0 == family", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:61: 1.3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:62: 1.4. path: Condition "NULL != res", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:62: 1.5. path: Condition "NULL != res", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:62: 1.6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:63: 1.7. path: Condition "0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:69: 1.8. path: Condition "0 != gethostname(hostname, 1025UL /* sizeof (hostname) */)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:90: 1.9. path: Condition "0 == e", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:126: 1.10. path: Condition "-2 != e", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:134: 1.11. path: Condition "0 == family", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:149: 1.12. path: Condition "NULL == he", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:165: 1.13. path: Condition "!pgm_getifaddrs(&ifap, error)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:172: 1.14. path: Condition "ifa", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:174: 1.15. path: Condition "NULL == ifa->ifa_addr", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:176: 1.16. path: Continuing loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:172: 1.17. path: Condition "ifa", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:174: 1.18. path: Condition "NULL == ifa->ifa_addr", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:174: 1.19. path: Condition "2 != ifa->ifa_addr->sa_family", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:177: 1.20. path: Condition "((struct sockaddr_in *)ifa->ifa_addr)->sin_addr.s_addr == ((struct in_addr *)he->h_addr_list[0])->s_addr", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:179: 1.21. path: Jumping to label "ipv4_found". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:191: 1.22. path: Condition "ifa6", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:193: 1.23. path: Condition "10 != ifa6->ifa_addr->sa_family", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:194: 1.24. path: Continuing loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:191: 1.25. path: Condition "ifa6", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:193: 1.26. path: Condition "10 != ifa6->ifa_addr->sa_family", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:195: 1.27. path: Condition "0 == strcmp(ifa->ifa_name, ifa6->ifa_name)", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:197: 1.28. path: Jumping to label "ipv6_found". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:209: 1.29. alloc_fn: Storage is returned from allocation function "pgm_malloc0". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:205: 1.29.1. path: Condition "n_bytes", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:207: 1.29.2. alloc_fn: Storage is returned from allocation function "calloc". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:207: 1.29.3. assign: Assigning: "mem" = "calloc(1UL, n_bytes)". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:208: 1.29.4. path: Condition "mem", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:209: 1.29.5. return_alloc: Returning allocated memory "mem". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:209: 1.30. assign: Assigning: "na" = "pgm_malloc0(na_len)". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:215: 1.31. assign: Assigning: "*res" = "na". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:244: 2. path: Condition "!pgm_getnodeaddr(family, &result, error)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:250: 3. path: Condition "NULL == result->ai_next", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:256: 4. path: Condition "!pgm_getifaddrs(&ifap, error)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:262: 5. var_assign: Assigning: "res" = "result". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:262: 6. path: Condition "NULL != res", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:265: 7. path: Condition "ifa", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:267: 8. path: Condition "NULL == ifa->ifa_addr", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:269: 9. path: Continuing loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:265: 10. path: Condition "ifa", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:267: 11. path: Condition "NULL == ifa->ifa_addr", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:267: 12. path: Condition "0 != pgm_sockaddr_cmp(ifa->ifa_addr, res->ai_addr)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:270: 13. path: Condition "ifa->ifa_flags & IFF_MULTICAST", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:276: 14. path: Breaking from loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:280: 15. path: Condition "NULL == res->ai_next", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:286: 16. path: Jumping back to the beginning of the loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:262: 17. path: Condition "NULL != res", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:265: 18. path: Condition "ifa", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:267: 19. path: Condition "NULL == ifa->ifa_addr", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:269: 20. path: Continuing loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:265: 21. path: Condition "ifa", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:267: 22. path: Condition "NULL == ifa->ifa_addr", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:267: 23. path: Condition "0 != pgm_sockaddr_cmp(ifa->ifa_addr, res->ai_addr)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:270: 24. path: Condition "ifa->ifa_flags & IFF_MULTICAST", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:271: 25. path: Condition "cnt >= (socklen_t)res->ai_addrlen", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:271: 26. path: Condition "cnt >= (socklen_t)res->ai_addrlen", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:271: 27. path: Condition "pgm_min_log_level <= PGM_LOG_LEVEL_WARNING", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:271: 28. leaked_storage: Variable "result" going out of scope leaks the storage it points to. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:281 Checker: RESOURCE_LEAK /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:244: 1. alloc_arg: "pgm_getnodeaddr" allocates memory that is stored into "result". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:61: 1.1. path: Condition "2 == family", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:61: 1.2. path: Condition "2 == family || 10 == family || 0 == family", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:61: 1.3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:62: 1.4. path: Condition "NULL != res", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:62: 1.5. path: Condition "NULL != res", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:62: 1.6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:63: 1.7. path: Condition "0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:69: 1.8. path: Condition "0 != gethostname(hostname, 1025UL /* sizeof (hostname) */)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:90: 1.9. path: Condition "0 == e", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:126: 1.10. path: Condition "-2 != e", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:134: 1.11. path: Condition "0 == family", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:149: 1.12. path: Condition "NULL == he", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:165: 1.13. path: Condition "!pgm_getifaddrs(&ifap, error)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:172: 1.14. path: Condition "ifa", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:174: 1.15. path: Condition "NULL == ifa->ifa_addr", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:176: 1.16. path: Continuing loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:172: 1.17. path: Condition "ifa", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:174: 1.18. path: Condition "NULL == ifa->ifa_addr", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:174: 1.19. path: Condition "2 != ifa->ifa_addr->sa_family", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:177: 1.20. path: Condition "((struct sockaddr_in *)ifa->ifa_addr)->sin_addr.s_addr == ((struct in_addr *)he->h_addr_list[0])->s_addr", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:179: 1.21. path: Jumping to label "ipv4_found". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:191: 1.22. path: Condition "ifa6", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:193: 1.23. path: Condition "10 != ifa6->ifa_addr->sa_family", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:194: 1.24. path: Continuing loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:191: 1.25. path: Condition "ifa6", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:193: 1.26. path: Condition "10 != ifa6->ifa_addr->sa_family", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:195: 1.27. path: Condition "0 == strcmp(ifa->ifa_name, ifa6->ifa_name)", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:197: 1.28. path: Jumping to label "ipv6_found". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:209: 1.29. alloc_fn: Storage is returned from allocation function "pgm_malloc0". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:205: 1.29.1. path: Condition "n_bytes", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:207: 1.29.2. alloc_fn: Storage is returned from allocation function "calloc". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:207: 1.29.3. assign: Assigning: "mem" = "calloc(1UL, n_bytes)". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:208: 1.29.4. path: Condition "mem", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:209: 1.29.5. return_alloc: Returning allocated memory "mem". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:209: 1.30. assign: Assigning: "na" = "pgm_malloc0(na_len)". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:215: 1.31. assign: Assigning: "*res" = "na". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:244: 2. path: Condition "!pgm_getnodeaddr(family, &result, error)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:250: 3. path: Condition "NULL == result->ai_next", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:256: 4. path: Condition "!pgm_getifaddrs(&ifap, error)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:262: 5. var_assign: Assigning: "res" = "result". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:262: 6. path: Condition "NULL != res", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:265: 7. path: Condition "ifa", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:267: 8. path: Condition "NULL == ifa->ifa_addr", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:269: 9. path: Continuing loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:265: 10. path: Condition "ifa", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:267: 11. path: Condition "NULL == ifa->ifa_addr", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:267: 12. path: Condition "0 != pgm_sockaddr_cmp(ifa->ifa_addr, res->ai_addr)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:270: 13. path: Condition "ifa->ifa_flags & IFF_MULTICAST", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:276: 14. path: Breaking from loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:280: 15. path: Condition "NULL == res->ai_next", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:286: 16. path: Jumping back to the beginning of the loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:262: 17. path: Condition "NULL != res", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:265: 18. path: Condition "ifa", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:267: 19. path: Condition "NULL == ifa->ifa_addr", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:269: 20. path: Continuing loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:265: 21. path: Condition "ifa", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:267: 22. path: Condition "NULL == ifa->ifa_addr", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:267: 23. path: Condition "0 != pgm_sockaddr_cmp(ifa->ifa_addr, res->ai_addr)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:270: 24. path: Condition "ifa->ifa_flags & IFF_MULTICAST", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:276: 25. path: Breaking from loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:280: 26. path: Condition "NULL == res->ai_next", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:281: 27. path: Condition "cnt >= (socklen_t)res->ai_addrlen", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:281: 28. path: Condition "cnt >= (socklen_t)res->ai_addrlen", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:281: 29. path: Condition "pgm_min_log_level <= PGM_LOG_LEVEL_WARNING", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/getnodeaddr.c:281: 30. leaked_storage: Variable "result" going out of scope leaks the storage it points to. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/histogram.c:63 Checker: CONSTANT_EXPRESSION_RESULT /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/histogram.c:63: result_independent_of_operands: "value > 2147483647" is always false regardless of the values of its operands. This occurs as the logical operand of "if". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/if.c:882 Checker: OVERRUN /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/if.c:851: 1. path: Condition "2 == family", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/if.c:851: 2. path: Condition "2 == family || 10 == family || 0 == family", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/if.c:851: 3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/if.c:852: 4. path: Condition "NULL != group", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/if.c:852: 5. path: Condition "NULL != group", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/if.c:852: 6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/if.c:853: 7. path: Condition "NULL != addr", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/if.c:853: 8. path: Condition "NULL != addr", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/if.c:853: 9. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/if.c:855: 10. path: Condition "0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/if.c:862: 11. path: Condition "2 != family", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/if.c:882: 12. path: Condition "10 != family", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/if.c:882: 13. overrun-buffer-val: Overrunning struct type in_addr of 4 bytes by passing it to a function which accesses it at byte offset 15. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1310: 13.1. path: Condition "2 == af", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1310: 13.2. path: Condition "2 == af || 10 == af", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1310: 13.3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1311: 13.4. path: Condition "NULL != src", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1311: 13.5. path: Condition "NULL != src", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1311: 13.6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1312: 13.7. path: Condition "NULL != dst", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1312: 13.8. path: Condition "NULL != dst", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1312: 13.9. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1322: 13.10. path: Condition "0 != e", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1326: 13.11. path: Condition "NULL != result->ai_addr", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1326: 13.12. path: Condition "NULL != result->ai_addr", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1326: 13.13. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1327: 13.14. path: Condition "0 != result->ai_addrlen", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1327: 13.15. path: Condition "0 != result->ai_addrlen", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1327: 13.16. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1329: 13.17. path: Switch case value "10". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1340: 13.18. access_dbuff_const: Calling "memcpy" indexes array "dst" with index "16UL" at byte position 15. [Note: The source code implementation of the function has been overridden by a builtin model.] /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/if.c:1379 Checker: DEADCODE /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/if.c:1367: cond_notnull: Condition "entity == NULL", taking false branch. Now the value of "entity" is not "NULL". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/if.c:1381: notnull: At condition "entity", the value of "entity" cannot be "NULL". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/if.c:1379: dead_error_condition: The condition "entity" must be true. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/if.c:1379: dead_error_line: Execution cannot reach the expression """" inside this statement: "pgm_prefix_error(error, "Un...". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/if.c:1379 Checker: DEADCODE /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/if.c:1367: cond_notnull: Condition "entity == NULL", taking false branch. Now the value of "entity" is not "NULL". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/if.c:1381: notnull: At condition "entity", the value of "entity" cannot be "NULL". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/if.c:1379: dead_error_condition: The condition "entity" must be true. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/if.c:1379: dead_error_line: Execution cannot reach the expression ""(null)"" inside this statement: "pgm_prefix_error(error, "Un...". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/include/impl/ticket.h:55 Checker: PW.INCLUDE_RECURSION /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/include/impl/ticket.h:55: 1. include_recursion: #include file "./include/impl/thread.h" includes itself: thread.h -> ticket.h -> thread.h /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/include/pgm/socket.h:45 Checker: PW.INCLUDE_RECURSION /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/include/pgm/socket.h:45: 1. include_recursion: #include file "./include/pgm/msgv.h" includes itself: msgv.h -> skbuff.h -> socket.h -> msgv.h /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/inet_network.c:182 Checker: PW.BRANCH_PAST_INITIALIZATION /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/inet_network.c:182: 1. branch_past_initialization: transfer of control bypasses initialization of: /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/inet_network.c:182: 2. name_at_decl_position: variable "suffix_length" (declared at line 229) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/inet_network.c:195 Checker: PW.BRANCH_PAST_INITIALIZATION /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/inet_network.c:195: 1. branch_past_initialization: transfer of control bypasses initialization of: /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/inet_network.c:195: 2. name_at_decl_position: variable "suffix_length" (declared at line 229) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/inet_network.c:203 Checker: PW.BRANCH_PAST_INITIALIZATION /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/inet_network.c:203: 1. branch_past_initialization: transfer of control bypasses initialization of: /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/inet_network.c:203: 2. name_at_decl_position: variable "suffix_length" (declared at line 229) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/inet_network.c:218 Checker: PW.BRANCH_PAST_INITIALIZATION /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/inet_network.c:218: 1. branch_past_initialization: transfer of control bypasses initialization of: /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/inet_network.c:218: 2. name_at_decl_position: variable "suffix_length" (declared at line 229) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/inet_network.c:224 Checker: PW.BRANCH_PAST_INITIALIZATION /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/inet_network.c:224: 1. branch_past_initialization: transfer of control bypasses initialization of: /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/inet_network.c:224: 2. name_at_decl_position: variable "suffix_length" (declared at line 229) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/inet_network.c:287 Checker: PW.BRANCH_PAST_INITIALIZATION /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/inet_network.c:287: 1. branch_past_initialization: transfer of control bypasses initialization of: /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/inet_network.c:287: 2. name_at_decl_position: variable "suffix_length" (declared at line 324) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/inet_network.c:294 Checker: PW.BRANCH_PAST_INITIALIZATION /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/inet_network.c:294: 1. branch_past_initialization: transfer of control bypasses initialization of: /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/inet_network.c:294: 2. name_at_decl_position: variable "suffix_length" (declared at line 324) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/inet_network.c:313 Checker: PW.BRANCH_PAST_INITIALIZATION /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/inet_network.c:313: 1. branch_past_initialization: transfer of control bypasses initialization of: /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/inet_network.c:313: 2. name_at_decl_position: variable "suffix_length" (declared at line 324) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/inet_network.c:319 Checker: PW.BRANCH_PAST_INITIALIZATION /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/inet_network.c:319: 1. branch_past_initialization: transfer of control bypasses initialization of: /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/inet_network.c:319: 2. name_at_decl_position: variable "suffix_length" (declared at line 324) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/md5.c:303 Checker: BUFFER_SIZE /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/md5.c:261: 1. path: Condition "len > 0", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/md5.c:262: 2. path: Condition "NULL != buffer", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/md5.c:262: 3. path: Condition "NULL != buffer", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/md5.c:262: 4. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/md5.c:264: 5. path: Condition "NULL != ctx", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/md5.c:264: 6. path: Condition "NULL != ctx", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/md5.c:264: 7. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/md5.c:266: 8. path: Condition "len >= 64", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/md5.c:276: 9. path: Condition "(uintptr_t)buffer % 4UL /* _Alignof (uint32_t) */ != 0", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/md5.c:277: 10. path: Condition "len > 64", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/md5.c:282: 11. path: Jumping back to the beginning of the loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/md5.c:277: 12. path: Condition "len > 64", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/md5.c:282: 13. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/md5.c:293: 14. path: Condition "len > 0", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/md5.c:299: 15. path: Condition "left_over >= 64", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/md5.c:303: 16. overlapping_buffer: The source buffer "&ctx->buffer[64]" potentially overlaps with the destination buffer "ctx->buffer", which results in undefined behavior for "memcpy". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/md5.c:303: 17. remediation: Use memmove instead of "memcpy". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:138 Checker: RESOURCE_LEAK /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:127: 1. path: Condition "pgm_atomic_exchange_and_add32(&mem_ref_count, 1) > 0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:130: 2. alloc_arg: "pgm_dupenv_s" allocates memory that is stored into "env". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/include/impl/security.h:208: 2.1. path: Condition "NULL == val", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/include/impl/security.h:213: 2.2. alloc_fn: Storage is returned from allocation function "pgm_strdup". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:51: 2.2.1. path: Condition "NULL != str", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:51: 2.2.2. path: Condition "NULL != str", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:54: 2.2.3. alloc_fn: Storage is returned from allocation function "pgm_malloc". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:158: 2.2.3.1. path: Condition "n_bytes", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:160: 2.2.3.2. alloc_fn: Storage is returned from allocation function "malloc". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:160: 2.2.3.3. assign: Assigning: "mem" = "malloc(n_bytes)". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:161: 2.2.3.4. path: Condition "mem", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:162: 2.2.3.5. return_alloc: Returning allocated memory "mem". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:54: 2.2.4. assign: Assigning: "new_str" = "pgm_malloc(length)". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:55: 2.2.5. noescape: Resource "new_str" is not freed or pointed-to in function "memcpy". [Note: The source code implementation of the function has been overridden by a builtin model.] /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:56: 2.2.6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:60: 2.2.7. return_alloc: Returning allocated memory "new_str". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/include/impl/security.h:213: 2.3. assign: Assigning: "*buffer" = "pgm_strdup(val)". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/include/impl/security.h:215: 2.4. path: Condition "NULL == *buffer", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:131: 3. path: Condition "0 == err", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:131: 4. path: Condition "envlen > 0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:136: 5. path: Condition "flags & 1", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:138: 6. leaked_storage: Variable "env" going out of scope leaks the storage it points to. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/messages.c:118 Checker: RESOURCE_LEAK /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/messages.c:91: 1. path: Condition "pgm_atomic_exchange_and_add32(&messages_ref_count, 1) > 0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/messages.c:96: 2. alloc_arg: "pgm_dupenv_s" allocates memory that is stored into "log_mask". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/include/impl/security.h:208: 2.1. path: Condition "NULL == val", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/include/impl/security.h:213: 2.2. alloc_fn: Storage is returned from allocation function "pgm_strdup". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:51: 2.2.1. path: Condition "NULL != str", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:51: 2.2.2. path: Condition "NULL != str", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:54: 2.2.3. alloc_fn: Storage is returned from allocation function "pgm_malloc". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:158: 2.2.3.1. path: Condition "n_bytes", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:160: 2.2.3.2. alloc_fn: Storage is returned from allocation function "malloc". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:160: 2.2.3.3. assign: Assigning: "mem" = "malloc(n_bytes)". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:161: 2.2.3.4. path: Condition "mem", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:162: 2.2.3.5. return_alloc: Returning allocated memory "mem". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:54: 2.2.4. assign: Assigning: "new_str" = "pgm_malloc(length)". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:55: 2.2.5. noescape: Resource "new_str" is not freed or pointed-to in function "memcpy". [Note: The source code implementation of the function has been overridden by a builtin model.] /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:56: 2.2.6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:60: 2.2.7. return_alloc: Returning allocated memory "new_str". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/include/impl/security.h:213: 2.3. assign: Assigning: "*buffer" = "pgm_strdup(val)". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/include/impl/security.h:215: 2.4. path: Condition "NULL == *buffer", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/messages.c:97: 3. path: Condition "!err", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/messages.c:97: 4. path: Condition "len > 0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/messages.c:105: 5. path: Condition "!err", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/messages.c:105: 6. path: Condition "len > 0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/messages.c:118: 7. leaked_storage: Variable "log_mask" going out of scope leaks the storage it points to. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/messages.c:118 Checker: RESOURCE_LEAK /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/messages.c:91: 1. path: Condition "pgm_atomic_exchange_and_add32(&messages_ref_count, 1) > 0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/messages.c:97: 2. path: Condition "!err", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/messages.c:97: 3. path: Condition "len > 0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/messages.c:104: 4. alloc_arg: "pgm_dupenv_s" allocates memory that is stored into "min_log_level". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/include/impl/security.h:208: 4.1. path: Condition "NULL == val", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/include/impl/security.h:213: 4.2. alloc_fn: Storage is returned from allocation function "pgm_strdup". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:51: 4.2.1. path: Condition "NULL != str", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:51: 4.2.2. path: Condition "NULL != str", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:54: 4.2.3. alloc_fn: Storage is returned from allocation function "pgm_malloc". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:158: 4.2.3.1. path: Condition "n_bytes", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:160: 4.2.3.2. alloc_fn: Storage is returned from allocation function "malloc". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:160: 4.2.3.3. assign: Assigning: "mem" = "malloc(n_bytes)". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:161: 4.2.3.4. path: Condition "mem", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:162: 4.2.3.5. return_alloc: Returning allocated memory "mem". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:54: 4.2.4. assign: Assigning: "new_str" = "pgm_malloc(length)". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:55: 4.2.5. noescape: Resource "new_str" is not freed or pointed-to in function "memcpy". [Note: The source code implementation of the function has been overridden by a builtin model.] /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:56: 4.2.6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:60: 4.2.7. return_alloc: Returning allocated memory "new_str". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/include/impl/security.h:213: 4.3. assign: Assigning: "*buffer" = "pgm_strdup(val)". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/include/impl/security.h:215: 4.4. path: Condition "NULL == *buffer", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/messages.c:105: 5. path: Condition "!err", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/messages.c:105: 6. path: Condition "len > 0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/messages.c:118: 7. leaked_storage: Variable "min_log_level" going out of scope leaks the storage it points to. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:109 Checker: CHECKED_RETURN /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:63: 1. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:63: 2. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:63: 3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:64: 4. path: Condition "NULL != buf", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:64: 5. path: Condition "NULL != buf", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:64: 6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:65: 7. path: Condition "len > 0", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:65: 8. path: Condition "len > 0", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:65: 9. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:66: 10. path: Condition "NULL != to", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:66: 11. path: Condition "NULL != to", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:66: 12. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:67: 13. path: Condition "tolen > 0", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:67: 14. path: Condition "tolen > 0", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:67: 15. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:86: 16. path: Condition "use_rate_limit", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:88: 17. path: Condition "NULL == minor_rate_control", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:90: 18. path: Condition "!pgm_rate_check(&sock->rate_control, len, sock->is_nonblocking)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:95: 19. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:106: 20. path: Condition "!use_router_alert", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:108: 21. path: Condition "-1 != hops", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:109: 22. check_return: Calling "pgm_sockaddr_multicast_hops(send_sock, sock->send_gsr.gsr_group.ss_family, hops)" without checking return value. It wraps a library function that may fail and return an error code. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1183: 22.1. path: Switch case value "2". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1201: 22.2. return_wrapper: The function wraps and returns the value of "setsockopt(s, IPPROTO_IP, 33, (char const *)&optval, 1U)". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1202: 22.3. path: Breaking from switch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:174 Checker: CHECKED_RETURN /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:63: 1. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:63: 2. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:63: 3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:64: 4. path: Condition "NULL != buf", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:64: 5. path: Condition "NULL != buf", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:64: 6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:65: 7. path: Condition "len > 0", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:65: 8. path: Condition "len > 0", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:65: 9. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:66: 10. path: Condition "NULL != to", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:66: 11. path: Condition "NULL != to", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:66: 12. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:67: 13. path: Condition "tolen > 0", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:67: 14. path: Condition "tolen > 0", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:67: 15. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:86: 16. path: Condition "use_rate_limit", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:88: 17. path: Condition "NULL == minor_rate_control", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:90: 18. path: Condition "!pgm_rate_check(&sock->rate_control, len, sock->is_nonblocking)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:95: 19. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:106: 20. path: Condition "!use_router_alert", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:108: 21. path: Condition "-1 != hops", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:112: 22. path: Condition "0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:113: 23. path: Condition "sent < 0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:173: 24. path: Condition "-1 != hops", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/net.c:174: 25. check_return: Calling "pgm_sockaddr_multicast_hops(send_sock, sock->send_gsr.gsr_group.ss_family, sock->hops)" without checking return value. It wraps a library function that may fail and return an error code. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1183: 25.1. path: Switch case value "2". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1201: 25.2. return_wrapper: The function wraps and returns the value of "setsockopt(s, IPPROTO_IP, 33, (char const *)&optval, 1U)". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1202: 25.3. path: Breaking from switch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/packet_test.c:1087 Checker: OVERRUN /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/packet_test.c:1074: 1. path: Condition "!services", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/packet_test.c:1080: 2. path: Condition "service_string != NULL", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/packet_test.c:1085: 3. path: Condition "se == NULL", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/packet_test.c:1087: 4. overrun-buffer-arg: Overrunning array "buf" of 6 bytes by passing it to a function which accesses it at byte offset 6 using argument "6UL". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/include/impl/security.h:139: 4.1. access_dbuff_in_call: Calling "pgm_vsnprintf_s" indexes array "str" with index "count". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/include/impl/security.h:102: 4.1.1. path: Condition "18446744073709551615UL /* (size_t)-1 */ == count", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/include/impl/security.h:108: 4.1.2. access_dbuff_in_call: Calling "vsnprintf" indexes array "str" with index "count". [Note: The source code implementation of the function has been overridden by a builtin model.] /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:205 Checker: OVERRUN /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:201: 1. path: Condition "NULL != peer", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:201: 2. path: Condition "NULL != peer", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:201: 3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:202: 4. path: Condition "NULL != skb", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:202: 5. path: Condition "NULL != skb", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:202: 6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:203: 7. path: Condition "NULL != skb->pgm_opt_pgmcc_data", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:203: 8. path: Condition "NULL != skb->pgm_opt_pgmcc_data", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:203: 9. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:205: 10. overrun-buffer-val: Overrunning buffer pointed to by "&skb->pgm_opt_pgmcc_data->opt_nla_afi" of 8 bytes by passing it to a function which accesses it at byte offset 19. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1365: 10.1. path: Switch case value "2". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1373: 10.2. access_dbuff_const: Calling "memcpy" indexes array "(struct in6_addr const *)((char const *)nla + 4UL)" with index "16UL" at byte position 15. [Note: The source code implementation of the function has been overridden by a builtin model.] /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:229 Checker: OVERRUN /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:218: 1. path: Condition "NULL != skb", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:218: 2. path: Condition "NULL != skb", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:218: 3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:219: 4. path: Condition "NULL != skb->pgm_opt_pgmcc_data", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:219: 5. path: Condition "NULL != skb->pgm_opt_pgmcc_data", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:219: 6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:222: 7. path: Switch case value "2U". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:229: 8. overrun-buffer-arg: Overrunning struct type in_addr of 4 bytes by passing it to a function which accesses it at byte offset 15 using argument "16UL". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:604 Checker: OVERRUN /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:583: 1. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:583: 2. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:583: 3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:584: 4. path: Condition "NULL != source", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:584: 5. path: Condition "NULL != source", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:584: 6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:585: 7. path: Condition "NULL != skb", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:585: 8. path: Condition "NULL != skb", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:585: 9. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:587: 10. path: Condition "0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:590: 11. path: Condition "!pgm_verify_spm(skb)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:590: 12. path: Condition "!pgm_verify_spm(skb)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:601: 13. path: Condition "pgm_uint32_gte(spm_sqn, source->spm_sqn)", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:604: 14. overrun-buffer-val: Overrunning buffer pointed to by "&spm->spm_nla_afi" of 8 bytes by passing it to a function which accesses it at byte offset 19. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1365: 14.1. path: Switch case value "2". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1373: 14.2. access_dbuff_const: Calling "memcpy" indexes array "(struct in6_addr const *)((char const *)nla + 4UL)" with index "16UL" at byte position 15. [Note: The source code implementation of the function has been overridden by a builtin model.] /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:743 Checker: OVERRUN /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:725: 1. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:725: 2. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:725: 3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:726: 4. path: Condition "NULL != peer", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:726: 5. path: Condition "NULL != peer", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:726: 6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:727: 7. path: Condition "NULL != skb", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:727: 8. path: Condition "NULL != skb", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:727: 9. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:729: 10. path: Condition "0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:732: 11. path: Condition "!pgm_verify_nak(skb)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:732: 12. path: Condition "!pgm_verify_nak(skb)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:743: 13. overrun-buffer-val: Overrunning buffer pointed to by "&nak->nak_src_nla_afi" of 16 bytes by passing it to a function which accesses it at byte offset 19. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1365: 13.1. path: Switch case value "2". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1373: 13.2. access_dbuff_const: Calling "memcpy" indexes array "(struct in6_addr const *)((char const *)nla + 4UL)" with index "16UL" at byte position 15. [Note: The source code implementation of the function has been overridden by a builtin model.] /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:874 Checker: OVERRUN /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:856: 1. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:856: 2. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:856: 3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:857: 4. path: Condition "NULL != source", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:857: 5. path: Condition "NULL != source", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:857: 6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:858: 7. path: Condition "NULL != skb", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:858: 8. path: Condition "NULL != skb", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:858: 9. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:860: 10. path: Condition "0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:863: 11. path: Condition "!pgm_verify_ncf(skb)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:863: 12. path: Condition "!pgm_verify_ncf(skb)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:874: 13. overrun-buffer-val: Overrunning buffer pointed to by "&ncf->nak_src_nla_afi" of 16 bytes by passing it to a function which accesses it at byte offset 19. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1365: 13.1. path: Switch case value "2". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1373: 13.2. access_dbuff_const: Calling "memcpy" indexes array "(struct in6_addr const *)((char const *)nla + 4UL)" with index "16UL" at byte position 15. [Note: The source code implementation of the function has been overridden by a builtin model.] /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1011 Checker: UNUSED_VALUE /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1023: value_overwrite: Overwriting previous write to "sent" with value from "pgm_sendto(sock, false, NULL, false, header, 16UL, (struct sockaddr *)&source->local_nla, pgm_sockaddr_len((struct sockaddr *)&source->local_nla))". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1011: returned_value: Assigning value from "pgm_sendto_hops(sock, false, NULL, false, 1, header, 16UL, (struct sockaddr *)&sock->recv_gsr[i].gsr_group, pgm_sockaddr_len((struct sockaddr *)&sock->recv_gsr[i].gsr_group))" to "sent" here, but that stored value is overwritten before it can be used. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1085 Checker: OVERRUN /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1059: 1. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1059: 2. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1059: 3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1060: 4. path: Condition "NULL != source", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1060: 5. path: Condition "NULL != source", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1060: 6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1062: 7. path: Condition "0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1066: 8. path: Condition "10 == source->nla.ss_family", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1085: 9. overrun-buffer-val: Overrunning buffer pointed to by "(char *)&nak->nak_src_nla_afi" of 16 bytes by passing it to a function which accesses it at byte offset 19. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1395: 9.1. path: Switch case value "10". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1403: 9.2. access_dbuff_const: Calling "memcpy" indexes array "(struct in6_addr *)((char *)nla + 4UL)" with index "16UL" at byte position 15. [Note: The source code implementation of the function has been overridden by a builtin model.] /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1161 Checker: OVERRUN /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1134: 1. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1134: 2. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1134: 3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1135: 4. path: Condition "NULL != source", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1135: 5. path: Condition "NULL != source", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1135: 6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1136: 7. path: Condition "nak_pkt_cnt > 0", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1136: 8. path: Condition "nak_pkt_cnt > 0", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1136: 9. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1138: 10. path: Condition "0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1142: 11. path: Condition "10 == source->nla.ss_family", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1161: 12. overrun-buffer-val: Overrunning buffer pointed to by "(char *)&nak->nak_src_nla_afi" of 16 bytes by passing it to a function which accesses it at byte offset 19. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1395: 12.1. path: Switch case value "10". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1403: 12.2. access_dbuff_const: Calling "memcpy" indexes array "(struct in6_addr *)((char *)nla + 4UL)" with index "16UL" at byte position 15. [Note: The source code implementation of the function has been overridden by a builtin model.] /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1256 Checker: OVERRUN /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1211: 1. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1211: 2. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1211: 3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1212: 4. path: Condition "NULL != source", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1212: 5. path: Condition "NULL != source", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1212: 6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1213: 7. path: Condition "NULL != sqn_list", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1213: 8. path: Condition "NULL != sqn_list", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1213: 9. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1214: 10. path: Condition "_n1 > 1UL /* _n2 */", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1214: 11. path: Condition "_n1 > 1UL /* _n2 */", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1214: 12. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1215: 13. path: Condition "_n1 <= 63UL /* _n2 */", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1215: 14. path: Condition "_n1 <= 63UL /* _n2 */", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1215: 15. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1235: 16. path: Condition "10 == source->nla.ss_family", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1238: 17. path: Condition "pgm_mem_gc_friendly", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1256: 18. overrun-buffer-val: Overrunning buffer pointed to by "(char *)&nak->nak_src_nla_afi" of 16 bytes by passing it to a function which accesses it at byte offset 19. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1395: 18.1. path: Switch case value "10". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1403: 18.2. access_dbuff_const: Calling "memcpy" indexes array "(struct in6_addr *)((char *)nla + 4UL)" with index "16UL" at byte position 15. [Note: The source code implementation of the function has been overridden by a builtin model.] /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1377 Checker: OVERRUN /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1325: 1. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1325: 2. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1325: 3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1326: 4. path: Condition "NULL != source", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1326: 5. path: Condition "NULL != source", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1326: 6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1327: 7. path: Condition "sock->use_pgmcc", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1327: 8. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1329: 9. path: Condition "0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1337: 10. path: Condition "10 == sock->send_addr.ss_family", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1340: 11. path: Condition "pgm_mem_gc_friendly", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1361: 12. path: Condition "10 == sock->send_addr.ss_family", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1361: 13. path: Condition "7UL /* sizeof (struct pgm_opt_length) + sizeof (struct pgm_opt_header) */ + (10 == sock->send_addr.ss_family)", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1368: 14. path: Condition "10 == sock->send_addr.ss_family", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/receiver.c:1377: 15. overrun-buffer-val: Overrunning buffer pointed to by "(char *)&opt_pgmcc_feedback->opt_nla_afi" of 8 bytes by passing it to a function which accesses it at byte offset 19. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1395: 15.1. path: Switch case value "10". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1403: 15.2. access_dbuff_const: Calling "memcpy" indexes array "(struct in6_addr *)((char *)nla + 4UL)" with index "16UL" at byte position 15. [Note: The source code implementation of the function has been overridden by a builtin model.] /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:739 Checker: PW.BRANCH_PAST_INITIALIZATION /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:739: 1. branch_past_initialization: transfer of control bypasses initialization of: /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:739: 2. name_at_decl_position: variable "bytes_received" (declared at line 749) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:739: 3. name_at_decl_position: variable "err" (declared at line 786) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:739: 4. name_at_decl_position: variable "is_valid" (declared at line 787) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:739: 5. name_at_decl_position: variable "source" (declared at line 805) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:765 Checker: PW.BRANCH_PAST_INITIALIZATION /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:765: 1. branch_past_initialization: transfer of control bypasses initialization of: /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:765: 2. name_at_decl_position: variable "err" (declared at line 786) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:765: 3. name_at_decl_position: variable "is_valid" (declared at line 787) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:765: 4. name_at_decl_position: variable "source" (declared at line 805) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:773 Checker: PW.BRANCH_PAST_INITIALIZATION /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:773: 1. branch_past_initialization: transfer of control bypasses initialization of: /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:773: 2. name_at_decl_position: variable "err" (declared at line 786) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:773: 3. name_at_decl_position: variable "is_valid" (declared at line 787) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:773: 4. name_at_decl_position: variable "source" (declared at line 805) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:779 Checker: PW.BRANCH_PAST_INITIALIZATION /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:779: 1. branch_past_initialization: transfer of control bypasses initialization of: /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:779: 2. name_at_decl_position: variable "err" (declared at line 786) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:779: 3. name_at_decl_position: variable "is_valid" (declared at line 787) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:779: 4. name_at_decl_position: variable "source" (declared at line 805) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:798 Checker: USE_AFTER_FREE /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:657: 1. path: Condition "0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:661: 2. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:661: 3. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:661: 4. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:662: 5. path: Condition "msg_len", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:662: 6. path: Condition "NULL != msg_start", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:662: 7. path: Condition "NULL != msg_start", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:662: 8. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:665: 9. path: Condition "!pgm_rwlock_reader_trylock(&sock->lock)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:665: 10. path: Condition "!pgm_rwlock_reader_trylock(&sock->lock)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:669: 11. path: Condition "!sock->is_bound", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:669: 12. path: Condition "sock->is_destroyed", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:669: 13. path: Condition "!sock->is_bound || sock->is_destroyed", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:676: 14. path: Condition "NULL != sock->rx_buffer", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:676: 15. path: Condition "NULL != sock->rx_buffer", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:676: 16. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:677: 17. path: Condition "sock->max_tpdu > 0", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:677: 18. path: Condition "sock->max_tpdu > 0", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:677: 19. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:678: 20. path: Condition "sock->can_recv_data", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:679: 21. path: Condition "NULL != sock->peers_hashtable", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:679: 22. path: Condition "NULL != sock->peers_hashtable", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:679: 23. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:680: 24. path: Condition "_n1 > 1UL /* _n2 */", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:680: 25. path: Condition "_n1 > 1UL /* _n2 */", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:680: 26. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:681: 27. path: Condition "pgm_notify_is_valid(&sock->pending_notify)", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:681: 28. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:687: 29. path: Condition "sock->is_reset", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:710: 30. path: Condition "pgm_timer_check(sock)", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:710: 31. path: Condition "!pgm_timer_dispatch(sock)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:717: 32. path: Condition "sock->can_send_data", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:719: 33. path: Condition "!pgm_txw_retransmit_is_empty(sock->window)", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:721: 34. path: Condition "!pgm_on_deferred_nak(sock)", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:723: 35. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:733: 36. path: Condition "0 == ++sock->last_commit", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:733: 37. path: Condition "0 == ++sock->last_commit", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:737: 38. path: Condition "sock->peers_pending", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:738: 39. path: Condition "0 != pgm_flush_peers_pending(sock, &pmsg, msg_end, &bytes_read, &data_read)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:760: 40. path: Condition "len < 0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:775: 41. path: Condition "0 == len", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:790: 42. path: Condition "!is_valid", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:790: 43. path: Condition "!is_valid", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:793: 44. path: Condition "pgm_min_log_level <= PGM_LOG_LEVEL_TRACE", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:793: 45. path: Condition "pgm_log_mask & PGM_LOG_ROLE_NETWORK", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:793: 46. path: Condition "err", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:793: 47. path: Condition "err->message", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:796: 48. freed_arg: "pgm_error_free" frees "err". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/error.c:68: 48.1. path: Condition "error != NULL", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/error.c:68: 48.2. path: Condition "error != NULL", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/error.c:68: 48.3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/error.c:70: 48.4. freed_arg: "pgm_free" frees parameter "error". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:284: 48.4.1. path: Condition "NULL != mem", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:284: 48.4.2. path: Condition "NULL != mem", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:285: 48.4.3. freed_arg: "free" frees parameter "mem". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:797: 49. path: Condition "sock->can_send_data", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:798: 50. path: Condition "err", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/recv.c:798: 51. deref_after_free: Dereferencing freed pointer "err". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:524 Checker: UNINIT /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:476: 1. path: Condition "NULL != rs", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:476: 2. path: Condition "NULL != rs", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:476: 3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:477: 4. path: Condition "NULL != block", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:477: 5. path: Condition "NULL != block", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:477: 6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:478: 7. path: Condition "NULL != offsets", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:478: 8. path: Condition "NULL != offsets", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:478: 9. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:479: 10. path: Condition "len > 0", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:479: 11. path: Condition "len > 0", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:479: 12. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:483: 13. path: Condition "i < rs->k", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:485: 14. path: Condition "offsets[i] < rs->k", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:488: 15. path: Continuing loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:483: 16. path: Condition "i < rs->k", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:485: 17. path: Condition "offsets[i] < rs->k", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:488: 18. path: Continuing loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:483: 19. path: Condition "i < rs->k", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:496: 20. var_decl: Declaring variable "repairs" without initializer. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:499: 21. path: Condition "j < rs->k", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:501: 22. path: Condition "offsets[j] < rs->k", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:502: 23. path: Continuing loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:499: 24. path: Condition "j < rs->k", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:501: 25. path: Condition "offsets[j] < rs->k", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:502: 26. path: Continuing loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:499: 27. path: Condition "j < rs->k", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:519: 28. path: Condition "j < rs->k", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:521: 29. path: Condition "offsets[j] < rs->k", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:522: 30. path: Continuing loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:519: 31. path: Condition "j < rs->k", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:521: 32. path: Condition "offsets[j] < rs->k", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:524: 33. uninit_use_in_call: Using uninitialized value "repairs[j]" when calling "memcpy". [Note: The source code implementation of the function has been overridden by a builtin model.] /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:524 Checker: UNINIT /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:476: 1. path: Condition "NULL != rs", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:476: 2. path: Condition "NULL != rs", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:476: 3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:477: 4. path: Condition "NULL != block", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:477: 5. path: Condition "NULL != block", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:477: 6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:478: 7. path: Condition "NULL != offsets", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:478: 8. path: Condition "NULL != offsets", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:478: 9. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:479: 10. path: Condition "len > 0", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:479: 11. path: Condition "len > 0", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:479: 12. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:483: 13. path: Condition "i < rs->k", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:485: 14. path: Condition "offsets[i] < rs->k", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:488: 15. path: Continuing loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:483: 16. path: Condition "i < rs->k", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:485: 17. path: Condition "offsets[i] < rs->k", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:488: 18. path: Continuing loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:483: 19. path: Condition "i < rs->k", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:496: 20. var_decl: Declaring variable "repairs" without initializer. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:499: 21. path: Condition "j < rs->k", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:501: 22. path: Condition "offsets[j] < rs->k", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:502: 23. path: Continuing loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:499: 24. path: Condition "j < rs->k", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:501: 25. path: Condition "offsets[j] < rs->k", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:502: 26. path: Continuing loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:499: 27. path: Condition "j < rs->k", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:501: 28. path: Condition "offsets[j] < rs->k", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:510: 29. path: Condition "i < rs->k", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:515: 30. path: Jumping back to the beginning of the loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:510: 31. path: Condition "i < rs->k", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:515: 32. path: Jumping back to the beginning of the loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:510: 33. path: Condition "i < rs->k", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:516: 34. path: Jumping back to the beginning of the loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:499: 35. path: Condition "j < rs->k", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:519: 36. path: Condition "j < rs->k", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:521: 37. path: Condition "offsets[j] < rs->k", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:522: 38. path: Continuing loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:519: 39. path: Condition "j < rs->k", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:521: 40. path: Condition "offsets[j] < rs->k", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:522: 41. path: Continuing loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:519: 42. path: Condition "j < rs->k", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:521: 43. path: Condition "offsets[j] < rs->k", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/reed_solomon.c:524: 44. uninit_use_in_call: Using uninitialized value "*repairs[j]" when calling "memcpy". [Note: The source code implementation of the function has been overridden by a builtin model.] /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:345 Checker: FORWARD_NULL /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:309: 1. path: Condition "NULL != window", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:309: 2. path: Condition "NULL != window", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:309: 3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:310: 4. path: Condition "NULL != skb", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:310: 5. path: Condition "NULL != skb", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:310: 6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:311: 7. path: Condition "_n1 > 0UL /* _n2 */", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:311: 8. path: Condition "_n1 > 0UL /* _n2 */", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:311: 9. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:312: 10. path: Condition "_n1 > 0UL /* _n2 */", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:312: 11. path: Condition "_n1 > 0UL /* _n2 */", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:312: 12. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:313: 13. path: Condition "pgm_skb_is_valid(skb)", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:313: 14. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:314: 15. path: Condition "((pgm_list_t const *)skb)->next == NULL", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:314: 16. path: Condition "((pgm_list_t const *)skb)->next == NULL", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:314: 17. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:315: 18. path: Condition "((pgm_list_t const *)skb)->prev == NULL", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:315: 19. path: Condition "((pgm_list_t const *)skb)->prev == NULL", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:315: 20. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:316: 21. path: Condition "!_pgm_tsi_is_null(&skb->tsi)", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:316: 22. path: Condition "!_pgm_tsi_is_null(&skb->tsi)", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:316: 23. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:317: 24. path: Condition "(char *)skb->data > (char *)skb->head", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:317: 25. path: Condition "(char *)skb->data > (char *)skb->head", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:317: 26. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:318: 27. path: Condition "24UL /* sizeof (struct pgm_header) + sizeof (struct pgm_data) */ <= (size_t)((char *)skb->data - (char *)skb->head)", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:318: 28. path: Condition "24UL /* sizeof (struct pgm_header) + sizeof (struct pgm_data) */ <= (size_t)((char *)skb->data - (char *)skb->head)", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:318: 29. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:319: 30. path: Condition "skb->len == (char *)skb->tail - (char *)skb->data", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:319: 31. path: Condition "skb->len == (char *)skb->tail - (char *)skb->data", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:319: 32. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:321: 33. path: Condition "0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:327: 34. path: Condition "skb->len != __bswap_16(skb->pgm_header->pgm_tsdu_length)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:327: 35. path: Condition "skb->len != __bswap_16(skb->pgm_header->pgm_tsdu_length)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:331: 36. path: Condition "skb->sequence - __bswap_32(skb->pgm_data->data_trail) >= 2147483646U /* 4294967295U / 2 - 1 */", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:331: 37. path: Condition "skb->sequence - __bswap_32(skb->pgm_data->data_trail) >= 2147483646U /* 4294967295U / 2 - 1 */", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:337: 38. path: Condition "!(skb->pgm_header->pgm_options & 0x80)", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:337: 39. path: Condition "skb->pgm_opt_fragment", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:341: 40. path: Condition "__bswap_32(skb->pgm_opt_fragment->opt_frag_len) == skb->len", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:341: 41. path: Condition "__bswap_32(skb->pgm_opt_fragment->opt_frag_len) == skb->len", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:342: 42. assign_zero: Assigning: "skb->pgm_opt_fragment" = "NULL". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:345: 43. var_deref_op: Dereferencing null pointer "skb->pgm_opt_fragment". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:533 Checker: BAD_SHIFT /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:497: 1. path: Condition "NULL != window", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:497: 2. path: Condition "NULL != window", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:497: 3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:500: 4. path: Condition "pgm_uint32_lte(txw_trail, window->rxw_trail)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:504: 5. path: Condition "txw_trail - window->rxw_trail > 2147483646U /* 4294967295U / 2 - 1 */", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:504: 6. path: Condition "txw_trail - window->rxw_trail > 2147483646U /* 4294967295U / 2 - 1 */", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:510: 7. path: Condition "window->is_constrained", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:512: 8. path: Condition "pgm_uint32_gt(txw_trail, window->rxw_trail_init)", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:513: 9. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:521: 10. path: Condition "pgm_uint32_lte(window->rxw_trail, window->trail)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:525: 11. path: Condition "pgm_rxw_is_empty(window)", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:532: 12. path: Condition "distance > 32", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:532: 13. cond_at_most: Checking "distance > 32U" implies that "distance" may be up to 32 on the false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/rxw.c:533: 14. large_shift: In expression "window->bitmap <<= distance", left shifting by more than 31 bits has undefined behavior. The shift amount, "distance", is as much as 32. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:207 Checker: NO_EFFECT /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:207: bad_memset: Calling "memset" with size 0: "memset(mask, 4, 0UL)" does nothing. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:207: remediation: Did you reverse the second and third arguments? The second argument should be the value to fill the memory with and the third argument should be the number of bytes to set. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1241 Checker: CHECKED_RETURN /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1239: 1. path: Condition "!v", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1239: 2. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1241: 3. check_return: Calling "fcntl(s, 4, flags)" without checking return value. This library function may fail and return an error code. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1058 Checker: DEADCODE /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:618: cond_const: Condition "1 == level", taking true branch. Now the value of "level" is equal to 1. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:618: cond_const: Condition "113 == level", taking true branch. Now the value of "level" is equal to 113. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:628: intervals: When switching on "level", the value of "level" must be in one of the following intervals: {[1,1], [113,113]}. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:628: dead_error_condition: The "switch" governing value "level" cannot reach the "default" case. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1058: dead_error_begin: Execution cannot reach this statement: "default:". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1653 Checker: OVERRUN /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1076: 1. path: Condition "sock != NULL", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1076: 2. path: Condition "sock != NULL", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1076: 3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1077: 4. path: Condition "113 == level", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1077: 5. path: Condition "113 == level || 1 == level", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1077: 6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1078: 7. path: Condition "!pgm_rwlock_reader_trylock(&sock->lock)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1078: 8. path: Condition "!pgm_rwlock_reader_trylock(&sock->lock)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1080: 9. path: Condition "sock->is_connected", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1080: 10. path: Condition "sock->is_destroyed", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1080: 11. path: Condition "sock->is_connected || sock->is_destroyed", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1085: 12. path: Switch case value "113". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1116: 13. path: Switch case value "PGM_LEAVE_GROUP". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1645: 14. path: Condition "optlen != 136UL /* sizeof (struct group_req) */", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1645: 15. path: Condition "optlen != 136UL /* sizeof (struct group_req) */", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1647: 16. path: Condition "0 == sock->recv_gsr_len", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1647: 17. path: Condition "0 == sock->recv_gsr_len", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1651: 18. path: Condition "i < sock->recv_gsr_len", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1653: 19. path: Condition "pgm_sockaddr_cmp((struct sockaddr const *)&gr->gr_group, (struct sockaddr *)&sock->recv_gsr[i].gsr_group) == 0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1667: 20. path: Jumping back to the beginning of the loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1651: 21. path: Condition "i < sock->recv_gsr_len", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1653: 22. path: Condition "pgm_sockaddr_cmp((struct sockaddr const *)&gr->gr_group, (struct sockaddr *)&sock->recv_gsr[i].gsr_group) == 0", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1653: 23. path: Condition "gr->gr_interface == 0", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1660: 24. path: Condition "i < 19U /* 20 - 1 */", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1660: 25. cond_at_least: Checking "i < 19U" implies that "i" is at least 19 on the false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1666: 26. incr: Incrementing "i". The value of "i" is now at least 20. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1667: 27. path: Jumping back to the beginning of the loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1651: 28. path: Condition "i < sock->recv_gsr_len", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1653: 29. overrun-local: Overrunning array "sock->recv_gsr" of 20 264-byte elements at element index 20 (byte offset 5543) using index "i" (which evaluates to 20). /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1775 Checker: OVERRUN /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1076: 1. path: Condition "sock != NULL", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1076: 2. path: Condition "sock != NULL", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1076: 3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1077: 4. path: Condition "113 == level", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1077: 5. path: Condition "113 == level || 1 == level", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1077: 6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1078: 7. path: Condition "!pgm_rwlock_reader_trylock(&sock->lock)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1078: 8. path: Condition "!pgm_rwlock_reader_trylock(&sock->lock)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1080: 9. path: Condition "sock->is_connected", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1080: 10. path: Condition "sock->is_destroyed", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1080: 11. path: Condition "sock->is_connected || sock->is_destroyed", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1085: 12. path: Switch case value "113". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1116: 13. path: Switch case value "PGM_LEAVE_SOURCE_GROUP". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1766: 14. path: Condition "optlen != 264UL /* sizeof (struct group_source_req) */", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1766: 15. path: Condition "optlen != 264UL /* sizeof (struct group_source_req) */", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1768: 16. path: Condition "0 == sock->recv_gsr_len", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1768: 17. path: Condition "0 == sock->recv_gsr_len", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1773: 18. path: Condition "i < sock->recv_gsr_len", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1775: 19. path: Condition "pgm_sockaddr_cmp((struct sockaddr const *)&gsr->gsr_group, (struct sockaddr *)&sock->recv_gsr[i].gsr_group) == 0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1786: 20. path: Jumping back to the beginning of the loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1773: 21. path: Condition "i < sock->recv_gsr_len", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1775: 22. path: Condition "pgm_sockaddr_cmp((struct sockaddr const *)&gsr->gsr_group, (struct sockaddr *)&sock->recv_gsr[i].gsr_group) == 0", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1775: 23. path: Condition "pgm_sockaddr_cmp((struct sockaddr const *)&gsr->gsr_source, (struct sockaddr *)&sock->recv_gsr[i].gsr_source) == 0", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1775: 24. path: Condition "gsr->gsr_interface == sock->recv_gsr[i].gsr_interface", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1780: 25. path: Condition "i < 19U /* 20 - 1 */", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1780: 26. cond_at_least: Checking "i < 19U" implies that "i" is at least 19 on the false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1786: 27. path: Jumping back to the beginning of the loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1773: 28. incr: Incrementing "i". The value of "i" is now at least 20. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1773: 29. path: Condition "i < sock->recv_gsr_len", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1775: 30. overrun-local: Overrunning array "sock->recv_gsr" of 20 264-byte elements at element index 20 (byte offset 5543) using index "i" (which evaluates to 20). /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1849 Checker: DEADCODE /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1077: cond_const: Condition "1 == level", taking true branch. Now the value of "level" is equal to 1. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1077: cond_const: Condition "113 == level", taking true branch. Now the value of "level" is equal to 113. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1085: intervals: When switching on "level", the value of "level" must be in one of the following intervals: {[1,1], [113,113]}. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1085: dead_error_condition: The "switch" governing value "level" cannot reach the "default" case. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/socket.c:1849: dead_error_begin: Execution cannot reach this statement: "default:". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:243 Checker: OVERFLOW_BEFORE_WIDEN /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:243: overflow_before_widen: Potentially overflowing expression "rtt * rtt" with type "unsigned int" (32 bits, unsigned) is evaluated using 32-bit arithmetic, and then used in a context that expects an expression of type "uint64_t const" (64 bits, unsigned). /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:243: remediation: To avoid overflow, cast "rtt" to type "uint64_t const". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:245 Checker: OVERRUN /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:235: 1. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:235: 2. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:235: 3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:236: 4. path: Condition "NULL != skb", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:236: 5. path: Condition "NULL != skb", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:236: 6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:237: 7. path: Condition "NULL != opt_pgmcc_feedback", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:237: 8. path: Condition "NULL != opt_pgmcc_feedback", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:237: 9. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:245: 10. overrun-buffer-val: Overrunning buffer pointed to by "&opt_pgmcc_feedback->opt_nla_afi" of 8 bytes by passing it to a function which accesses it at byte offset 19. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1365: 10.1. path: Switch case value "2". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1373: 10.2. access_dbuff_const: Calling "memcpy" indexes array "(struct in6_addr const *)((char const *)nla + 4UL)" with index "16UL" at byte position 15. [Note: The source code implementation of the function has been overridden by a builtin model.] /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:324 Checker: OVERRUN /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:297: 1. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:297: 2. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:297: 3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:298: 4. path: Condition "NULL != skb", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:298: 5. path: Condition "NULL != skb", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:298: 6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:300: 7. path: Condition "0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:304: 8. path: Condition "is_parity", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:306: 9. path: Condition "!sock->use_ondemand_parity", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:311: 10. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:314: 11. path: Condition "!pgm_verify_nak(skb)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:314: 12. path: Condition "!pgm_verify_nak(skb)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:324: 13. overrun-buffer-val: Overrunning buffer pointed to by "&nak->nak_src_nla_afi" of 16 bytes by passing it to a function which accesses it at byte offset 19. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1365: 13.1. path: Switch case value "2". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1373: 13.2. access_dbuff_const: Calling "memcpy" indexes array "(struct in6_addr const *)((char const *)nla + 4UL)" with index "16UL" at byte position 15. [Note: The source code implementation of the function has been overridden by a builtin model.] /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:448 Checker: OVERRUN /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:431: 1. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:431: 2. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:431: 3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:432: 4. path: Condition "NULL != skb", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:432: 5. path: Condition "NULL != skb", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:432: 6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:434: 7. path: Condition "0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:439: 8. path: Condition "!pgm_verify_nnak(skb)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:439: 9. path: Condition "!pgm_verify_nnak(skb)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:448: 10. overrun-buffer-val: Overrunning buffer pointed to by "&nnak->nak_src_nla_afi" of 16 bytes by passing it to a function which accesses it at byte offset 19. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1365: 10.1. path: Switch case value "2". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1373: 10.2. access_dbuff_const: Calling "memcpy" indexes array "(struct in6_addr const *)((char const *)nla + 4UL)" with index "16UL" at byte position 15. [Note: The source code implementation of the function has been overridden by a builtin model.] /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:570 Checker: BAD_SHIFT /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:511: 1. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:511: 2. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:511: 3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:512: 4. path: Condition "NULL != skb", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:512: 5. path: Condition "NULL != skb", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:512: 6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:514: 7. path: Condition "0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:519: 8. path: Condition "!pgm_verify_ack(skb)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:519: 9. path: Condition "!pgm_verify_ack(skb)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:524: 10. path: Condition "!sock->use_pgmcc", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:530: 11. path: Condition "skb->pgm_header->pgm_options & 1", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:536: 12. path: Condition "opt_len->opt_type != 0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:536: 13. path: Condition "opt_len->opt_type != 0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:540: 14. path: Condition "opt_len->opt_length != 4UL /* sizeof (struct pgm_opt_length) */", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:540: 15. path: Condition "opt_len->opt_length != 4UL /* sizeof (struct pgm_opt_length) */", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:547: 16. path: Condition "(opt_header->opt_type & 0x7f) == 0x13", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:550: 17. path: Breaking from loop. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:556: 18. path: Condition "!is_acker", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:566: 19. path: Condition "pgm_uint32_gt(ack_rx_max, sock->ack_rx_max)", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:569: 20. path: Condition "delta > 32", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:569: 21. cond_at_most: Checking "delta > 32" implies that "delta" may be up to 32 on the false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:570: 22. path: Condition "delta > 0", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:570: 23. cond_between: Checking "delta > 0" implies that "delta" is between 1 and 32 (inclusive) on the true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:570: 24. large_shift: In expression "sock->ack_bitmap <<= delta", left shifting by more than 31 bits has undefined behavior. The shift amount, "delta", is as much as 32. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:592 Checker: PW.BRANCH_PAST_INITIALIZATION /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:592: 1. branch_past_initialization: transfer of control bypasses initialization of: /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:592: 2. name_at_decl_position: variable "total_lost" (declared at line 598) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:732 Checker: OVERRUN /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:684: 1. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:684: 2. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:684: 3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:685: 4. path: Condition "NULL != sock->window", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:685: 5. path: Condition "NULL != sock->window", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:685: 6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:687: 7. path: Condition "0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:691: 8. path: Condition "2 == sock->send_gsr.gsr_group.ss_family", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:692: 9. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:695: 10. path: Condition "sock->use_proactive_parity", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:702: 11. path: Condition "sock->use_proactive_parity", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:707: 12. path: Condition "sock->is_pending_crqst", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:711: 13. path: Condition "14 == flags", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:732: 14. overrun-buffer-val: Overrunning buffer pointed to by "(char *)&spm->spm_nla_afi" of 8 bytes by passing it to a function which accesses it at byte offset 19. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1395: 14.1. path: Switch case value "10". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1403: 14.2. access_dbuff_const: Calling "memcpy" indexes array "(struct in6_addr *)((char *)nla + 4UL)" with index "16UL" at byte position 15. [Note: The source code implementation of the function has been overridden by a builtin model.] /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:899 Checker: OVERRUN /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:862: 1. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:862: 2. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:862: 3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:863: 4. path: Condition "NULL != nak_src_nla", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:863: 5. path: Condition "NULL != nak_src_nla", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:863: 6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:864: 7. path: Condition "NULL != nak_grp_nla", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:864: 8. path: Condition "NULL != nak_grp_nla", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:864: 9. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:865: 10. path: Condition "nak_src_nla->sa_family == nak_grp_nla->sa_family", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:865: 11. path: Condition "nak_src_nla->sa_family == nak_grp_nla->sa_family", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:865: 12. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:881: 13. path: Condition "2 == nak_src_nla->sa_family", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:892: 14. path: Condition "is_parity", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:899: 15. overrun-buffer-val: Overrunning buffer pointed to by "(char *)&ncf->nak_src_nla_afi" of 16 bytes by passing it to a function which accesses it at byte offset 19. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1395: 15.1. path: Switch case value "10". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1403: 15.2. access_dbuff_const: Calling "memcpy" indexes array "(struct in6_addr *)((char *)nla + 4UL)" with index "16UL" at byte position 15. [Note: The source code implementation of the function has been overridden by a builtin model.] /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:996 Checker: OVERRUN /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:950: 1. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:950: 2. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:950: 3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:951: 4. path: Condition "NULL != nak_src_nla", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:951: 5. path: Condition "NULL != nak_src_nla", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:951: 6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:952: 7. path: Condition "NULL != nak_grp_nla", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:952: 8. path: Condition "NULL != nak_grp_nla", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:952: 9. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:953: 10. path: Condition "sqn_list->len > 1", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:953: 11. path: Condition "sqn_list->len > 1", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:953: 12. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:954: 13. path: Condition "sqn_list->len <= 63", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:954: 14. path: Condition "sqn_list->len <= 63", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:954: 15. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:955: 16. path: Condition "nak_src_nla->sa_family == nak_grp_nla->sa_family", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:955: 17. path: Condition "nak_src_nla->sa_family == nak_grp_nla->sa_family", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:955: 18. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:981: 19. path: Condition "2 == nak_src_nla->sa_family", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:990: 20. path: Condition "is_parity", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:996: 21. overrun-buffer-val: Overrunning buffer pointed to by "(char *)&ncf->nak_src_nla_afi" of 16 bytes by passing it to a function which accesses it at byte offset 19. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1395: 21.1. path: Switch case value "10". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1403: 21.2. access_dbuff_const: Calling "memcpy" indexes array "(struct in6_addr *)((char *)nla + 4UL)" with index "16UL" at byte position 15. [Note: The source code implementation of the function has been overridden by a builtin model.] /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1107 Checker: PW.BRANCH_PAST_INITIALIZATION /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1107: 1. branch_past_initialization: transfer of control bypasses initialization of: /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1107: 2. name_at_decl_position: variable "pgm_header_len" (declared at line 1161) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1107: 3. name_at_decl_position: variable "unfolded_header" (declared at line 1162) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1155 Checker: OVERRUN /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1093: 1. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1093: 2. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1093: 3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1094: 4. path: Condition "NULL != skb", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1094: 5. path: Condition "NULL != skb", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1094: 6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1095: 7. path: Condition "skb->len <= sock->max_tsdu", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1095: 8. path: Condition "skb->len <= sock->max_tsdu", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1095: 9. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1097: 10. path: Condition "0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1105: 11. path: Condition "sock->is_apdu_eagain", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1121: 12. path: Condition "sock->use_pgmcc", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1130: 13. path: Condition "sock->use_pgmcc", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1139: 14. path: Condition "10 == sock->acker_nla.ss_family", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1146: 15. path: Condition "10 == sock->acker_nla.ss_family", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1155: 16. overrun-buffer-val: Overrunning buffer pointed to by "(char *)&pgmcc_data->opt_nla_afi" of 8 bytes by passing it to a function which accesses it at byte offset 19. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1395: 16.1. path: Switch case value "10". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1403: 16.2. access_dbuff_const: Calling "memcpy" indexes array "(struct in6_addr *)((char *)nla + 4UL)" with index "16UL" at byte position 15. [Note: The source code implementation of the function has been overridden by a builtin model.] /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1289 Checker: PW.BRANCH_PAST_INITIALIZATION /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1289: 1. branch_past_initialization: transfer of control bypasses initialization of: /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1289: 2. name_at_decl_position: variable "pgm_header_len" (declared at line 1343) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1289: 3. name_at_decl_position: variable "unfolded_header" (declared at line 1344) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1340 Checker: OVERRUN /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1276: 1. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1276: 2. path: Condition "NULL != sock", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1276: 3. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1277: 4. path: Condition "tsdu_length <= sock->max_tsdu", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1277: 5. path: Condition "tsdu_length <= sock->max_tsdu", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1277: 6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1278: 7. path: Condition "tsdu_length", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1278: 8. path: Condition "NULL != tsdu", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1278: 9. path: Condition "NULL != tsdu", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1278: 10. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1280: 11. path: Condition "0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1287: 12. path: Condition "sock->is_apdu_eagain", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1304: 13. path: Condition "sock->use_pgmcc", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1313: 14. path: Condition "sock->use_pgmcc", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1323: 15. path: Condition "10 == sock->acker_nla.ss_family", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1330: 16. path: Condition "10 == sock->acker_nla.ss_family", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1340: 17. overrun-buffer-val: Overrunning buffer pointed to by "(char *)&pgmcc_data->opt_nla_afi" of 8 bytes by passing it to a function which accesses it at byte offset 19. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1395: 17.1. path: Switch case value "10". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/sockaddr.c:1403: 17.2. access_dbuff_const: Calling "memcpy" indexes array "(struct in6_addr *)((char *)nla + 4UL)" with index "16UL" at byte position 15. [Note: The source code implementation of the function has been overridden by a builtin model.] /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1475 Checker: PW.BRANCH_PAST_INITIALIZATION /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1475: 1. branch_past_initialization: transfer of control bypasses initialization of: /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1475: 2. name_at_decl_position: variable "pgmcc_family" (declared at line 1493) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1475: 3. name_at_decl_position: variable "pgm_header_len" (declared at line 1511) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1475: 4. name_at_decl_position: variable "unfolded_header" (declared at line 1512) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1630 Checker: PW.BRANCH_PAST_INITIALIZATION /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1630: 1. branch_past_initialization: transfer of control bypasses initialization of: /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1630: 2. name_at_decl_position: variable "pgm_header_len" (declared at line 1709) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1630: 3. name_at_decl_position: variable "unfolded_header" (declared at line 1710) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1919 Checker: PW.BRANCH_PAST_INITIALIZATION /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1919: 1. branch_past_initialization: transfer of control bypasses initialization of: /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1919: 2. name_at_decl_position: variable "pgm_header_len" (declared at line 2081) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:1919: 3. name_at_decl_position: variable "unfolded_header" (declared at line 2082) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:2266 Checker: PW.BRANCH_PAST_INITIALIZATION /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:2266: 1. branch_past_initialization: transfer of control bypasses initialization of: /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:2266: 2. name_at_decl_position: variable "header_length" (declared at line 2366) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/source.c:2266: 3. name_at_decl_position: variable "unfolded_header" (declared at line 2367) /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:380 Checker: FORWARD_NULL /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:378: 1. assign_zero: Assigning: "string->str" = "NULL". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:379: 2. path: Condition "init_size > 2", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:379: 3. no_write_call: Although "pgm_string_maybe_expand" does overwrite "string->str" on some paths, it also contains at least one feasible path which does not overwrite it. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:380: 4. var_deref_op: Dereferencing null pointer "string->str". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:254 Checker: RESOURCE_LEAK /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:248: 1. path: Condition "pgm_atomic_exchange_and_add32(&time_ref_count, 1) > 0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:252: 2. alloc_arg: "pgm_dupenv_s" allocates memory that is stored into "pgm_timer". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/include/impl/security.h:208: 2.1. path: Condition "NULL == val", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/include/impl/security.h:213: 2.2. alloc_fn: Storage is returned from allocation function "pgm_strdup". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:51: 2.2.1. path: Condition "NULL != str", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:51: 2.2.2. path: Condition "NULL != str", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:54: 2.2.3. alloc_fn: Storage is returned from allocation function "pgm_malloc". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:158: 2.2.3.1. path: Condition "n_bytes", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:160: 2.2.3.2. alloc_fn: Storage is returned from allocation function "malloc". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:160: 2.2.3.3. assign: Assigning: "mem" = "malloc(n_bytes)". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:161: 2.2.3.4. path: Condition "mem", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:162: 2.2.3.5. return_alloc: Returning allocated memory "mem". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:54: 2.2.4. assign: Assigning: "new_str" = "pgm_malloc(length)". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:55: 2.2.5. noescape: Resource "new_str" is not freed or pointed-to in function "memcpy". [Note: The source code implementation of the function has been overridden by a builtin model.] /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:56: 2.2.6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:60: 2.2.7. return_alloc: Returning allocated memory "new_str". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/include/impl/security.h:213: 2.3. assign: Assigning: "*buffer" = "pgm_strdup(val)". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/include/impl/security.h:215: 2.4. path: Condition "NULL == *buffer", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:253: 3. path: Condition "0 != err", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:253: 4. path: Condition "0 == envlen", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:254: 5. overwrite_var: Overwriting "pgm_timer" in "pgm_timer = pgm_strdup("GETTIMEOFDAY")" leaks the storage that "pgm_timer" points to. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:490 Checker: DIVIDE_BY_ZERO /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:248: 1. path: Condition "pgm_atomic_exchange_and_add32(&time_ref_count, 1) > 0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:253: 2. path: Condition "0 != err", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:253: 3. path: Condition "0 == envlen", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:266: 4. path: Switch case value "'F'". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:269: 5. path: Condition "pgm_min_log_level <= PGM_LOG_LEVEL_MINOR", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:271: 6. path: Breaking from switch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:371: 7. path: Condition "pgm_time_update_now == pgm_tsc_update", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:474: 8. path: Condition "0 == err", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:474: 9. path: Condition "envlen > 0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:481: 10. path: Condition "0 >= tsc_khz", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:481: 11. cond_at_most: Checking "0UL >= tsc_khz" implies that "tsc_khz" may be up to 0 on the true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:483: 12. path: Condition "!pgm_tsc_init(&sub_error)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:489: 13. path: Condition "pgm_min_log_level <= PGM_LOG_LEVEL_MINOR", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:490: 14. divide_by_zero: In function call "set_tsc_mul", division by expression "tsc_khz" which may be zero has undefined behavior. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:185: 14.1. divide_arg: "khz" is used as a divisor in "1024000000U / khz". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:490 Checker: DIVIDE_BY_ZERO /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:248: 1. path: Condition "pgm_atomic_exchange_and_add32(&time_ref_count, 1) > 0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:253: 2. path: Condition "0 != err", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:253: 3. path: Condition "0 == envlen", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:266: 4. path: Switch case value "'F'". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:269: 5. path: Condition "pgm_min_log_level <= PGM_LOG_LEVEL_MINOR", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:271: 6. path: Breaking from switch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:371: 7. path: Condition "pgm_time_update_now == pgm_tsc_update", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:474: 8. path: Condition "0 == err", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:474: 9. path: Condition "envlen > 0", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:475: 10. zero_return: Function call "atoi(rdtsc_frequency)" returns 0. [Note: The source code implementation of the function has been overridden by a builtin model.] /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:475: 11. assignment: Assigning: "tsc_khz" = "atoi(rdtsc_frequency) * 1000". The value of "tsc_khz" is now 0. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:481: 12. path: Condition "0 >= tsc_khz", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:483: 13. path: Condition "!pgm_tsc_init(&sub_error)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:489: 14. path: Condition "pgm_min_log_level <= PGM_LOG_LEVEL_MINOR", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:490: 15. divide_by_zero: In function call "set_tsc_mul", division by expression "tsc_khz" which may be zero has undefined behavior. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:185: 15.1. divide_arg: "khz" is used as a divisor in "1024000000U / khz". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:491 Checker: RESOURCE_LEAK /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:248: 1. path: Condition "pgm_atomic_exchange_and_add32(&time_ref_count, 1) > 0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:253: 2. path: Condition "0 != err", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:253: 3. path: Condition "0 == envlen", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:266: 4. path: Switch case value "'F'". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:269: 5. path: Condition "pgm_min_log_level <= PGM_LOG_LEVEL_MINOR", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:271: 6. path: Breaking from switch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:371: 7. path: Condition "pgm_time_update_now == pgm_tsc_update", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:473: 8. alloc_arg: "pgm_dupenv_s" allocates memory that is stored into "rdtsc_frequency". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/include/impl/security.h:208: 8.1. path: Condition "NULL == val", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/include/impl/security.h:213: 8.2. alloc_fn: Storage is returned from allocation function "pgm_strdup". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:51: 8.2.1. path: Condition "NULL != str", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:51: 8.2.2. path: Condition "NULL != str", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:54: 8.2.3. alloc_fn: Storage is returned from allocation function "pgm_malloc". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:158: 8.2.3.1. path: Condition "n_bytes", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:160: 8.2.3.2. alloc_fn: Storage is returned from allocation function "malloc". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:160: 8.2.3.3. assign: Assigning: "mem" = "malloc(n_bytes)". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:161: 8.2.3.4. path: Condition "mem", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/mem.c:162: 8.2.3.5. return_alloc: Returning allocated memory "mem". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:54: 8.2.4. assign: Assigning: "new_str" = "pgm_malloc(length)". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:55: 8.2.5. noescape: Resource "new_str" is not freed or pointed-to in function "memcpy". [Note: The source code implementation of the function has been overridden by a builtin model.] /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:56: 8.2.6. path: Falling through to end of if statement. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/string.c:60: 8.2.7. return_alloc: Returning allocated memory "new_str". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/include/impl/security.h:213: 8.3. assign: Assigning: "*buffer" = "pgm_strdup(val)". /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/include/impl/security.h:215: 8.4. path: Condition "NULL == *buffer", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:474: 9. path: Condition "0 == err", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:474: 10. path: Condition "envlen > 0", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:481: 11. path: Condition "0 >= tsc_khz", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:483: 12. path: Condition "!pgm_tsc_init(&sub_error)", taking false branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:489: 13. path: Condition "pgm_min_log_level <= PGM_LOG_LEVEL_MINOR", taking true branch. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/time.c:491: 14. leaked_storage: Variable "rdtsc_frequency" going out of scope leaks the storage it points to. /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/timer.c:70 Checker: CONSTANT_EXPRESSION_RESULT /build/libpgm-z0D9bi/libpgm-5.2.122~dfsg/openpgm/pgm/timer.c:70: result_independent_of_operands: "2147483647 < msec" is always false regardless of the values of its operands. This occurs as the logical first operand of "?:".