On 2/1/2022 7:30 PM, Scott Theisen wrote:
printf %s with a null pointer is undefined behavior
---
  libavutil/avutil.h | 3 +--
  libavutil/utils.c  | 3 ++-
  2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/libavutil/avutil.h b/libavutil/avutil.h
index 4d633156d1..4bd468d72f 100644
--- a/libavutil/avutil.h
+++ b/libavutil/avutil.h
@@ -207,8 +207,7 @@ enum AVMediaType {
  };
/**
- * Return a string describing the media_type enum, NULL if media_type
- * is unknown.
+ * Return a string describing the media_type enum, never NULL.

This is an API breakage, so it's not ok.

The doxy states it returns NULL if media_type is unknown, so you're expected to check the returned pointer before trying to use it.

   */
  const char *av_get_media_type_string(enum AVMediaType media_type);
diff --git a/libavutil/utils.c b/libavutil/utils.c
index ea9b5097b8..c85d7abace 100644
--- a/libavutil/utils.c
+++ b/libavutil/utils.c
@@ -71,12 +71,13 @@ const char *avutil_license(void)
  const char *av_get_media_type_string(enum AVMediaType media_type)
  {
      switch (media_type) {
+    case AVMEDIA_TYPE_UNKNOWN:    return "unknown";
      case AVMEDIA_TYPE_VIDEO:      return "video";
      case AVMEDIA_TYPE_AUDIO:      return "audio";
      case AVMEDIA_TYPE_DATA:       return "data";
      case AVMEDIA_TYPE_SUBTITLE:   return "subtitle";
      case AVMEDIA_TYPE_ATTACHMENT: return "attachment";
-    default:                      return NULL;
+    default:                      return "invalid";
      }
  }
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to