[FFmpeg-cvslog] avutil/hwcontext_d3d11va: Use secure dlopen.

Matt Oliver git at videolan.org
Sat Feb 15 14:54:32 EET 2020


ffmpeg | branch: master | Matt Oliver <protogonoi at gmail.com> | Tue Dec 31 02:59:39 2019 +1100| [f0c0ad4455e5f72edf175e81a06e52562cdd1ab2] | committer: Matt Oliver

avutil/hwcontext_d3d11va: Use secure dlopen.

dlopen contains additional security to prevent dll hijacking compared to standard LoadLibrary.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f0c0ad4455e5f72edf175e81a06e52562cdd1ab2
---

 libavutil/hwcontext_d3d11va.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/libavutil/hwcontext_d3d11va.c b/libavutil/hwcontext_d3d11va.c
index 6670c47579..c8ae58f908 100644
--- a/libavutil/hwcontext_d3d11va.c
+++ b/libavutil/hwcontext_d3d11va.c
@@ -39,6 +39,7 @@
 #include "pixdesc.h"
 #include "pixfmt.h"
 #include "thread.h"
+#include "compat/w32dlfcn.h"
 
 typedef HRESULT(WINAPI *PFN_CREATE_DXGI_FACTORY)(REFIID riid, void **ppFactory);
 
@@ -55,8 +56,8 @@ static av_cold void load_functions(void)
     // from too many LoadLibrary calls.
     HANDLE d3dlib, dxgilib;
 
-    d3dlib  = LoadLibrary("d3d11.dll");
-    dxgilib = LoadLibrary("dxgi.dll");
+    d3dlib  = dlopen("d3d11.dll", 0);
+    dxgilib = dlopen("dxgi.dll", 0);
     if (!d3dlib || !dxgilib)
         return;
 



More information about the ffmpeg-cvslog mailing list