cmdutils.c:1350: error: Null Dereference
  pointer `topic` last assigned on line 1349 could be null and is dereferenced by call to `strchr()` at line 1350, column 11.

cmdutils.c:1344:1: start of procedure show_help()
1342. #endif
1343. 
1344. int show_help(void *optctx, const char *opt, const char *arg)
      ^
1345. {
1346.     char *topic, *par;

cmdutils.c:1347:5: 
1345. {
1346.     char *topic, *par;
1347.     av_log_set_callback(log_callback_help);
          ^
1348. 
1349.     topic = av_strdup(arg ? arg : "");

libavutil/log.c:180:1: start of procedure av_log_set_callback()
  178. }
  179. 
  180. void av_log_set_callback(void (*callback)(void*, int, const char*, va_list))
       ^
  181. {
  182.     av_log_callback = callback;

libavutil/log.c:182:5: 
  180. void av_log_set_callback(void (*callback)(void*, int, const char*, va_list))
  181. {
  182.     av_log_callback = callback;
           ^
  183. }
  184. 

libavutil/log.c:183:1: return from a call to av_log_set_callback
  181. {
  182.     av_log_callback = callback;
  183. }
       ^
  184. 
  185. static void missing_feature_sample(int sample, void *avc, const char *msg,

cmdutils.c:1349:23: Condition is true
1347.     av_log_set_callback(log_callback_help);
1348. 
1349.     topic = av_strdup(arg ? arg : "");
                            ^
1350.     par = strchr(topic, '=');
1351.     if (par)

cmdutils.c:1349:5: 
1347.     av_log_set_callback(log_callback_help);
1348. 
1349.     topic = av_strdup(arg ? arg : "");
          ^
1350.     par = strchr(topic, '=');
1351.     if (par)

libavutil/mem.c:212:1: start of procedure av_strdup()
  210. }
  211. 
  212. char *av_strdup(const char *s)
       ^
  213. {
  214.     char *ptr = NULL;

libavutil/mem.c:214:5: 
  212. char *av_strdup(const char *s)
  213. {
  214.     char *ptr = NULL;
           ^
  215.     if (s) {
  216.         int len = strlen(s) + 1;

libavutil/mem.c:215:9: Taking true branch
  213. {
  214.     char *ptr = NULL;
  215.     if (s) {
               ^
  216.         int len = strlen(s) + 1;
  217.         ptr = av_realloc(NULL, len);

libavutil/mem.c:216:9: 
  214.     char *ptr = NULL;
  215.     if (s) {
  216.         int len = strlen(s) + 1;
               ^
  217.         ptr = av_realloc(NULL, len);
  218.         if (ptr)

libavutil/mem.c:217:9: 
  215.     if (s) {
  216.         int len = strlen(s) + 1;
  217.         ptr = av_realloc(NULL, len);
               ^
  218.         if (ptr)
  219.             memcpy(ptr, s, len);

libavutil/mem.c:116:1: start of procedure av_realloc()
    114. }
    115. 
    116. void *av_realloc(void *ptr, size_t size)
         ^
    117. {
    118. #if CONFIG_MEMALIGN_HACK

libavutil/mem.c:123:9: Taking false branch
    121. 
    122.     /* let's disallow possibly ambiguous cases */
    123.     if (size > (INT_MAX - 16))
                 ^
    124.         return NULL;
    125. 

libavutil/mem.c:135:5: 
    133.     return _aligned_realloc(ptr, size, 32);
    134. #else
    135.     return realloc(ptr, size);
             ^
    136. #endif
    137. }

libavutil/mem.c:137:1: return from a call to av_realloc
    135.     return realloc(ptr, size);
    136. #endif
    137. }
         ^
    138. 
    139. int av_reallocp(void *ptr, size_t size)

libavutil/mem.c:218:13: Taking false branch
  216.         int len = strlen(s) + 1;
  217.         ptr = av_realloc(NULL, len);
  218.         if (ptr)
                   ^
  219.             memcpy(ptr, s, len);
  220.     }

libavutil/mem.c:221:5: 
  219.             memcpy(ptr, s, len);
  220.     }
  221.     return ptr;
           ^
  222. }
  223. 

libavutil/mem.c:222:1: return from a call to av_strdup
  220.     }
  221.     return ptr;
  222. }
       ^
  223. 
  224. static void fill16(uint8_t *dst, int len)

cmdutils.c:1350:5: 
1348. 
1349.     topic = av_strdup(arg ? arg : "");
1350.     par = strchr(topic, '=');
          ^
1351.     if (par)
1352.         *par++ = 0;
