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

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

cmdutils.c:1348:5: 
1346. {
1347.     char *topic, *par;
1348.     av_log_set_callback(log_callback_help);
          ^
1349. 
1350.     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:1350:23: Condition is true
1348.     av_log_set_callback(log_callback_help);
1349. 
1350.     topic = av_strdup(arg ? arg : "");
                            ^
1351.     par = strchr(topic, '=');
1352.     if (par)

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

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

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

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

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

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

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

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

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

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

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

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

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

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