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

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

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

libavutil/log.c:200:1: start of procedure av_log_set_callback()
  198. }
  199. 
  200. void av_log_set_callback(void (*callback)(void*, int, const char*, va_list))
       ^
  201. {
  202.     av_log_callback = callback;

libavutil/log.c:202:5: 
  200. void av_log_set_callback(void (*callback)(void*, int, const char*, va_list))
  201. {
  202.     av_log_callback = callback;
           ^
  203. }
  204. 

libavutil/log.c:203:1: return from a call to av_log_set_callback
  201. {
  202.     av_log_callback = callback;
  203. }
       ^
  204. 
  205. static void missing_feature_sample(int sample, void *avc, const char *msg,

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

cmdutils.c:1352:5: 
1350.     av_log_set_callback(log_callback_help);
1351. 
1352.     topic = av_strdup(arg ? arg : "");
          ^
1353.     par = strchr(topic, '=');
1354.     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. char *av_strndup(const char *s, size_t len)

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