Null pointer passed to 1st parameter expecting 'nonnull' [clang-analyzer-core.NonNullParamChecker]
jonesmz opened this issue · comments
Michael Jones commented
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:1729:14: warning: Null pointer passed to 1st parameter expecting 'nonnull' [clang-analyzer-core.NonNullParamChecker]
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:2476:11: note: Assuming the condition is true
while (((c = getopt_long(argc, argv, ADMIN_OPTIONS, uo.u.o, NULL)) != -1)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:2476:3: note: Loop condition is true. Entering loop body
while (((c = getopt_long(argc, argv, ADMIN_OPTIONS, uo.u.o, NULL)) != -1)) {
^
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:2477:5: note: Control jumps to 'case 88:' at line 2548
switch (c) {
^
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:2550:11: note: Assuming 'optarg' is null
if (optarg)
^~~~~~
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:2550:7: note: Taking false branch
if (optarg)
^
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:2552:7: note: Execution continues on line 2476
break;
^
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:2476:11: note: Assuming the condition is true
while (((c = getopt_long(argc, argv, ADMIN_OPTIONS, uo.u.o, NULL)) != -1)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:2476:3: note: Loop condition is true. Entering loop body
while (((c = getopt_long(argc, argv, ADMIN_OPTIONS, uo.u.o, NULL)) != -1)) {
^
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:2477:5: note: Control jumps to 'case 118:' at line 2643
switch (c) {
^
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:2644:23: note: Passing null pointer value via 1st parameter 'in'
decrypt_aes_128((char *)optarg, generated_key);
^~~~~~~~~~~~~~
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:2644:7: note: Calling 'decrypt_aes_128'
decrypt_aes_128((char *)optarg, generated_key);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:1744:38: note: Passing null pointer value via 1st parameter 'input'
int newTotalSize = decodedTextSize(in);
^~
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:1744:22: note: Calling 'decodedTextSize'
int newTotalSize = decodedTextSize(in);
^~~~~~~~~~~~~~~~~~~
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:1729:14: note: Null pointer passed to 1st parameter expecting 'nonnull'
int size = strlen(input);
^ ~~~~~
Michael Jones commented
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:1745:25: warning: Null pointer passed to 1st parameter expecting 'nonnull' [clang-analyzer-core.NonNullParamChecker]
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:2476:11: note: Assuming the condition is true
while (((c = getopt_long(argc, argv, ADMIN_OPTIONS, uo.u.o, NULL)) != -1)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:2476:3: note: Loop condition is true. Entering loop body
while (((c = getopt_long(argc, argv, ADMIN_OPTIONS, uo.u.o, NULL)) != -1)) {
^
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:2477:5: note: Control jumps to 'case 102:' at line 2626
switch (c) {
^
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:2628:11: note: Assuming 'fptr' is not equal to NULL
if (fptr == NULL) {
^~~~~~~~~~~~
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:2628:7: note: Taking false branch
if (fptr == NULL) {
^
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:2633:13: note: Assuming 'rc' is not equal to 0
if (rc == 0) {
^~~~~~~
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:2633:9: note: Taking false branch
if (rc == 0) {
^
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:2636:15: note: Assuming 'rc' is equal to 16
if (rc != 16) {
^~~~~~~~
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:2636:11: note: Taking false branch
if (rc != 16) {
^
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:2642:7: note: Execution continues on line 2476
break;
^
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:2476:11: note: Assuming the condition is true
while (((c = getopt_long(argc, argv, ADMIN_OPTIONS, uo.u.o, NULL)) != -1)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:2476:3: note: Loop condition is true. Entering loop body
while (((c = getopt_long(argc, argv, ADMIN_OPTIONS, uo.u.o, NULL)) != -1)) {
^
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:2477:5: note: Control jumps to 'case 88:' at line 2548
switch (c) {
^
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:2550:11: note: Assuming 'optarg' is null
if (optarg)
^~~~~~
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:2550:7: note: Taking false branch
if (optarg)
^
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:2552:7: note: Execution continues on line 2476
break;
^
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:2476:11: note: Assuming the condition is true
while (((c = getopt_long(argc, argv, ADMIN_OPTIONS, uo.u.o, NULL)) != -1)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:2476:3: note: Loop condition is true. Entering loop body
while (((c = getopt_long(argc, argv, ADMIN_OPTIONS, uo.u.o, NULL)) != -1)) {
^
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:2477:5: note: Control jumps to 'case 118:' at line 2643
switch (c) {
^
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:2644:23: note: Passing null pointer value via 1st parameter 'in'
decrypt_aes_128((char *)optarg, generated_key);
^~~~~~~~~~~~~~
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:2644:7: note: Calling 'decrypt_aes_128'
decrypt_aes_128((char *)optarg, generated_key);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:1745:25: note: Null pointer passed to 1st parameter expecting 'nonnull'
int bytes_to_decode = strlen(in);
^ ~~
Michael Jones commented
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:1818:5: warning: Null pointer passed to 2nd parameter expecting 'nonnull' [clang-analyzer-core.NonNullParamChecker]
STRCPY(turn_params.oauth_server_name, value);
^
/home/runner/work/coturn/coturn/src/ns_turn_defs.h:194:9: note: expanded from macro 'STRCPY'
strncpy((char *)(dst), (const char *)(src), szdst); \
^ ~~~~~~~~~~~~~~~~~~~
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:1787:7: note: Assuming 'value' is null
if (value && value[0] == '=') {
^~~~~
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:1787:13: note: Left side of '&&' is false
if (value && value[0] == '=') {
^
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:1795:3: note: Control jumps to 'case SERVER_NAME_OPT:' at line 1817
switch (c) {
^
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:1818:5: note: 'value' is not equal to field 'oauth_server_name'
STRCPY(turn_params.oauth_server_name, value);
^
/home/runner/work/coturn/coturn/src/ns_turn_defs.h:189:32: note: expanded from macro 'STRCPY'
if ((const char *)(dst) != (const char *)(src)) { \
^~~~~~~~~~~~~~~~~~~
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:1818:5: note: Taking true branch
STRCPY(turn_params.oauth_server_name, value);
^
/home/runner/work/coturn/coturn/src/ns_turn_defs.h:189:5: note: expanded from macro 'STRCPY'
if ((const char *)(dst) != (const char *)(src)) { \
^
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:1818:5: note: Taking false branch
STRCPY(turn_params.oauth_server_name, value);
^
/home/runner/work/coturn/coturn/src/ns_turn_defs.h:190:7: note: expanded from macro 'STRCPY'
if (sizeof(dst) == sizeof(char *)) \
^
/home/runner/work/coturn/coturn/src/apps/relay/mainrelay.c:1818:5: note: Null pointer passed to 2nd parameter expecting 'nonnull'
STRCPY(turn_params.oauth_server_name, value);
^
/home/runner/work/coturn/coturn/src/ns_turn_defs.h:194:9: note: expanded from macro 'STRCPY'
strncpy((char *)(dst), (const char *)(src), szdst); \
^ ~~~~~~~~~~~~~~~~~~~
Michael Jones commented
There are additional clang-tidy findings, but they all appear to be in the same function, so better to start with fixing the first and see what happens.