coturn / coturn

coturn TURN server project

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Null pointer passed to 1st parameter expecting 'nonnull' [clang-analyzer-core.NonNullParamChecker]

jonesmz opened this issue · comments

/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);
             ^      ~~~~~
/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);
                        ^      ~~
/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);                                                            \
        ^                      ~~~~~~~~~~~~~~~~~~~

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.