From 10d3b7534232fc2baad7231c7302556dec8dc390 Mon Sep 17 00:00:00 2001 From: Zhiming Wang Date: Fri, 14 Sep 2018 21:25:50 -0400 Subject: [PATCH] util::color::space::Space: fix possible segfault with .name() av_get_colorspace_name could return NULL. Also, switch from av_get_colorspace_name (frame.c) to av_color_space_name (pixdesc.c), which is more comprehensive. --- src/util/color/space.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/util/color/space.rs b/src/util/color/space.rs index 33f80b3..4e15551 100644 --- a/src/util/color/space.rs +++ b/src/util/color/space.rs @@ -26,9 +26,14 @@ pub enum Space { } impl Space { - pub fn name(&self) -> &'static str { + pub fn name(&self) -> Option<&'static str> { unsafe { - from_utf8_unchecked(CStr::from_ptr(av_get_colorspace_name((*self).into())).to_bytes()) + let ptr = av_color_space_name((*self).into()); + if ptr.is_null() { + None + } else { + Some(from_utf8_unchecked(CStr::from_ptr(ptr).to_bytes())) + } } } }