From patchwork Wed May 25 21:35:19 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Martin_Storsj=C3=B6?= X-Patchwork-Id: 35929 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:6914:b0:82:6b11:2509 with SMTP id q20csp59738pzj; Wed, 25 May 2022 14:35:32 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyF2SY5G0dB2FgmZfV5u/G7A8dMfHguDxz8LGKcRkryZLe3Y4vQENSD/Vhlwe7jOwn+ryrw X-Received: by 2002:a05:6402:1d51:b0:41f:cf6c:35a5 with SMTP id dz17-20020a0564021d5100b0041fcf6c35a5mr36922542edb.25.1653514532365; Wed, 25 May 2022 14:35:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1653514532; cv=none; d=google.com; s=arc-20160816; b=NgxJ9aCeAtewVgtnc7C28A4klqJ6yzqmwII4WVXKxCW6RpvCmkehtACYxetfWnvZ+8 hkVqyBMcPVqPAZtsfroz22VrDzd2rInO/XHquYlOTE/zCbXKHGiEq4LDHT/jGhtaXWl2 KXd5qia2hXpkQQqTZwYw2d+OEu4oyt7qP8OQee8v9Z3UAlEr8O8++9ROYQnGFVeBVG0N ab5CljgatH/BaQNzCPQ4mRUG9tVcyc+FRwaWGH3eoBV3/CrqwccscvDy26PlDlMzNr21 yrvkH4GnW+YBLn9u9otmA7FSdQ7j0JBRNOABT4bPYTcUtK574RykzGHUmpg2SkHPic9S rWvQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=8SbP5MBirCNk0owFJrd15/Wa2tA5aLnrMnbwEMsDFA0=; b=Dd+ozzf7O7JaJIhX+P0pnTDysuXKQeGBe5s0OfF5LB4Y94bY1DRwnq19bvwUwEynim bDEXiSs5oig99s2eX/dTDEisslrZRgXjO/rKbpx0g9NcodEo5jZvu00ZLjzytu+lMk2E oU96YnAM6L1k7NC/Nm3hRh8lw6RFfoM9j7lG18Oxw2jTLx0Fkevvu4HQ/Gr85ZlKK0yI MUHU4tr3+fz3DuIlsD2I7Pz0p9L6qlDxtckrTHVvamKB3+y1HRy9rh3ORXR3eAaLAvbo TZ5rPBLSjfPfa20RpQi1dD9a0wJZEAMER1d6CBg+5m92ybytNx1SjdeeH1Ir6AYX2UFO chPg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@martin-st.20210112.gappssmtp.com header.s=20210112 header.b=VnTlvzVi; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id o1-20020a056402438100b0042b2dc4bf5dsi21597148edc.66.2022.05.25.14.35.30; Wed, 25 May 2022 14:35:32 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@martin-st.20210112.gappssmtp.com header.s=20210112 header.b=VnTlvzVi; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C7C8B68B4F2; Thu, 26 May 2022 00:35:28 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lj1-f176.google.com (mail-lj1-f176.google.com [209.85.208.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 10A8268B4F1 for ; Thu, 26 May 2022 00:35:22 +0300 (EEST) Received: by mail-lj1-f176.google.com with SMTP id m6so25908627ljb.2 for ; Wed, 25 May 2022 14:35:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=martin-st.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=8pB37dVsgCTDZYv0gCNggs2GEuNrHS5Ne3pKregpOXc=; b=VnTlvzVi5t1Lvpf+uZktVJL4aneMkLkHaPT6kOCx3p6Ck0V/jDdo1OQQhJ8qeawnNC 9GTfoYz2nkhgUoo8pfjdy5eTtfO9lHvo6ZaThi5OMguuWiEXTwUWjkuycxQRHDAII7sQ 4Ing6fwbcbebk2Nb2xha2DwqviA5IbyVQlf8OFiZse+fFttLSuO7C9ELF2L/4neQultB hPgoeKBSN8YW7b12OHg0QCoNPXV0NusrPhJ1YPISZygomYae7wz97dfnRpyz3Foo9WhQ RXxYK8nlwKDKluPTnYdnKNxHMILthgQX1YDZI71WS36a8azsVPJW3MzApQh5Gxu0tPfi 9eJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=8pB37dVsgCTDZYv0gCNggs2GEuNrHS5Ne3pKregpOXc=; b=A5OpJeUV60HmivEYnlCWTbfcHytBadyZrpq5ycB5EoufgeCwW8fL0I4YSvbbu+r957 IofM/6G03PtMdXqlxTlRLXKjBF2Uo2VHo56/nCaNs84gCA+wA5pqkTDjDOg1nhwehGid hbEkxGy3Y5wd5uGcq4+nCb7rjkpUuN3mFRyrelVaoWJv+zomroiWLzf9vqT3lRqaIm5s mWNC2jx8Rok3z8eYMI4x8oRe159jspp2WYZyUIl1YDJE1FkrcWAWgh1axxnBrf+N00cK uJPY+GW/+fxFSeVfudk/kBEdULYP4b//gdfFllbiDonkuA9an1TNSBct4WC0quIKEEYb afiA== X-Gm-Message-State: AOAM531IHVkHBN4LPzaP7nNt92lHuKg2fk/ZQl+t95AOSCMH1QASAB2M ENP6y/hRqB7L9jjGjt3UQkiZRncgb/vW8kBD X-Received: by 2002:a05:651c:158b:b0:250:a056:7e48 with SMTP id h11-20020a05651c158b00b00250a0567e48mr20738737ljq.64.1653514521271; Wed, 25 May 2022 14:35:21 -0700 (PDT) Received: from localhost.localdomain (dsl-tkubng21-58c01c-243.dhcp.inet.fi. [88.192.28.243]) by smtp.gmail.com with ESMTPSA id p8-20020a2ea4c8000000b0024f3d1daec9sm3340982ljm.81.2022.05.25.14.35.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 May 2022 14:35:20 -0700 (PDT) From: =?utf-8?q?Martin_Storsj=C3=B6?= To: ffmpeg-devel@ffmpeg.org Date: Thu, 26 May 2022 00:35:19 +0300 Message-Id: <20220525213519.3730605-1-martin@martin.st> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] mfenc: Use dlopen instead of LoadLibrary for loading mfplat.dll X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: =?utf-8?q?Martin_Storsj=C3=B6?= , trystan.mata@tytanium.xyz, timo@rothenpieler.org Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: UqT4C0Ytt3iS The dlopen wrapper contains code to make loading libraries safer, to avoid loading a potentially malicious DLL with the same name. Signed-off-by: Martin Storsjö --- libavcodec/mfenc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libavcodec/mfenc.c b/libavcodec/mfenc.c index 17d0ec60bd..ab0b6b4145 100644 --- a/libavcodec/mfenc.c +++ b/libavcodec/mfenc.c @@ -29,6 +29,7 @@ #include "libavutil/time.h" #include "codec_internal.h" #include "internal.h" +#include "compat/w32dlfcn.h" typedef struct MFContext { AVClass *av_class; @@ -1158,7 +1159,7 @@ static int mf_load_library(AVCodecContext *avctx) MFContext *c = avctx->priv_data; #if !HAVE_UWP - c->library = LoadLibraryA("mfplat.dll"); + c->library = dlopen("mfplat.dll", 0); if (!c->library) { av_log(c, AV_LOG_ERROR, "DLL mfplat.dll failed to open\n"); @@ -1191,7 +1192,7 @@ static int mf_close(AVCodecContext *avctx) if (c->library) ff_free_mf(&c->functions, &c->mft); - FreeLibrary(c->library); + dlclose(c->library); c->library = NULL; #else ff_free_mf(&c->functions, &c->mft);