From patchwork Wed Mar 10 21:54:33 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 26319 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 2DB0A44B799 for ; Wed, 10 Mar 2021 23:55:08 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0E70868AAE6; Wed, 10 Mar 2021 23:55:08 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ej1-f45.google.com (mail-ej1-f45.google.com [209.85.218.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 00682688134 for ; Wed, 10 Mar 2021 23:55:01 +0200 (EET) Received: by mail-ej1-f45.google.com with SMTP id mm21so41773334ejb.12 for ; Wed, 10 Mar 2021 13:55:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references:reply-to :mime-version:content-transfer-encoding; bh=U8HVHpqe15t6GuJ+/hdo5yXfQax0BG54iv3UJymVhto=; b=ZJ4hHszTSBGRpQNxNHNkIczaXPSFXXF0wBFTCq1/ZfxLkVHSaGPx8o6iFfJwJRpD9z wlp7UfitvZhj7vO9mZz7ZHYX5fFw/DEDdXaJqi022sdlzXZojf+AN6BccjNO6YCLJ4Qd jDbaJSXqG9uZQCBdPk57xZ8ItuVd1DqjljYYkTsnUGknJCPrEAx6b5CySJX9waIostdu OdSt1Oz1o4yJX1rtqI6lthy7cd9Azjgh4dsTlVApnXQU5xaxtoUv/yH+72PtWfk4ounp Xyx1Hqiilx+zfKQB7CNsfEM9IUaDtLNFFjWfe4Gep0irjjqxi5SpNdIuRww4qP9R1ESc BFUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:reply-to:mime-version:content-transfer-encoding; bh=U8HVHpqe15t6GuJ+/hdo5yXfQax0BG54iv3UJymVhto=; b=OAfb4x0GHpD0Bfe5WdHxiwcMEPk6Z9gnIKEtG1N+BnKzBr+Jvj0EMQg1DrP0ql7i9S FUpfhi5B0bNFzJhTrL/QibtnZBuxfr2Lx+9MT5dSvnbnyuofvmlUWLkk+VtC04VIDXL4 o/AvEo4jEK70I1TkkeR0hbRougJYaV1y10D1jlQxdWkyZW6ThvT5b0I5+YmDX67KyDXb xlDAfAlDQFYWDiHzMXAQ44YJVoYZAmXHu6Ll6wHXT/ZTRp//MvANOOw7ElhDbn2XgN/w fwOk0PtrTL9kKykUdXxL7zqawdYQxWI1bQXUYuHEVn4VI4IVQav0DNTCrie+Q/lV3+gU i+SA== X-Gm-Message-State: AOAM532aJ8Ty79xyEJz57w/oOPH+ueJHfo3nhCcbwY0lGZ8Ut1kEmJ/o 0tE/JSx2bw91ubd13/6ewx3um0viWV4= X-Google-Smtp-Source: ABdhPJzfQD2Ch8mA8p5FrZjoc5ilMAtSzbMgNUGUgBtEbopS/+zaqf1Wd/7ghQ+LuF9jaeatOeLKxg== X-Received: by 2002:a17:906:da0e:: with SMTP id fi14mr36772ejb.188.1615413301259; Wed, 10 Mar 2021 13:55:01 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id m10sm351993ejx.10.2021.03.10.13.55.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Mar 2021 13:55:00 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 10 Mar 2021 22:54:33 +0100 Message-Id: <20210310215446.1396386-1-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210310010601.1142819-1-andreas.rheinhardt@gmail.com> References: <20210310010601.1142819-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 10/23] dnn/dnn_backend_native: Avoid allocation for checking file magic X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Signed-off-by: Andreas Rheinhardt --- libavfilter/dnn/dnn_backend_native.c | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/libavfilter/dnn/dnn_backend_native.c b/libavfilter/dnn/dnn_backend_native.c index 3bc253c1ad..5336cd765a 100644 --- a/libavfilter/dnn/dnn_backend_native.c +++ b/libavfilter/dnn/dnn_backend_native.c @@ -114,10 +114,9 @@ static DNNReturnType get_output_native(void *model, const char *input_name, int // For DEPTH_TO_SPACE layer: block_size DNNModel *ff_dnn_load_model_native(const char *model_filename, DNNFunctionType func_type, const char *options, AVFilterContext *filter_ctx) { +#define DNN_NATIVE_MAGIC "FFMPEGDNNNATIVE" DNNModel *model = NULL; - char header_expected[] = "FFMPEGDNNNATIVE"; - char *buf; - size_t size; + char buf[sizeof(DNN_NATIVE_MAGIC) - 1]; int version, header_size, major_version_expected = 1; NativeModel *native_model = NULL; AVIOContext *model_file_context; @@ -138,20 +137,10 @@ DNNModel *ff_dnn_load_model_native(const char *model_filename, DNNFunctionType f /** * check file header with string and version */ - size = sizeof(header_expected); - buf = av_malloc(size); - if (!buf) { + if (avio_read(model_file_context, buf, sizeof(buf)) != sizeof(buf) || + memcmp(buf, DNN_NATIVE_MAGIC, sizeof(buf))) goto fail; - } - - // size - 1 to skip the ending '\0' which is not saved in file - avio_get_str(model_file_context, size - 1, buf, size); - dnn_size = size - 1; - if (strncmp(buf, header_expected, size) != 0) { - av_freep(&buf); - goto fail; - } - av_freep(&buf); + dnn_size = sizeof(buf); version = (int32_t)avio_rl32(model_file_context); dnn_size += 4;