From 5a57f389f45e9d6663746d7f060cccee7db04f16 Mon Sep 17 00:00:00 2001 From: Jonathan Baecker Date: Tue, 2 Dec 2014 20:10:41 +0100 Subject: [PATCH] avdevice/decklink_common: fix heap corruption run time error Signed-off-by: Jonathan Baecker Reviewed-by: Ramiro Polla Signed-off-by: Michael Niedermayer --- libavdevice/decklink_common.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavdevice/decklink_common.cpp b/libavdevice/decklink_common.cpp index 9a9e44bf3c..6899bd29c9 100644 --- a/libavdevice/decklink_common.cpp +++ b/libavdevice/decklink_common.cpp @@ -69,9 +69,12 @@ static char *dup_wchar_to_utf8(wchar_t *w) } #define DECKLINK_STR OLECHAR * #define DECKLINK_STRDUP dup_wchar_to_utf8 +#define DECKLINK_FREE(s) SysFreeString(s) #else #define DECKLINK_STR const char * #define DECKLINK_STRDUP av_strdup +/* free() is needed for a string returned by the DeckLink SDL. */ +#define DECKLINK_FREE(s) free((void *) s) #endif HRESULT ff_decklink_get_display_name(IDeckLink *This, const char **displayName) @@ -81,8 +84,7 @@ HRESULT ff_decklink_get_display_name(IDeckLink *This, const char **displayName) if (hr != S_OK) return hr; *displayName = DECKLINK_STRDUP(tmpDisplayName); - /* free() is needed for a string returned by the DeckLink SDL. */ - free((void *) tmpDisplayName); + DECKLINK_FREE(tmpDisplayName); return hr; } -- 2.11.0