Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: Cai Eaphone <cyfdel-at-hotmail.com@ffmpeg.org>
To: "ffmpeg-devel@ffmpeg.org" <ffmpeg-devel@ffmpeg.org>
Subject: [FFmpeg-devel] 回复: [PATCH v1] libavdevice/gdigrab: change hwnd tail check fail logic to !=null
Date: Wed, 7 Aug 2024 16:57:17 +0000
Message-ID: <TYAPR01MB32773086048477B9D134C090DEB82@TYAPR01MB3277.jpnprd01.prod.outlook.com> (raw)
In-Reply-To: <TYAPR01MB32771EAB1466CFBF9B3698D9DEB82@TYAPR01MB3277.jpnprd01.prod.outlook.com>

this message seems not attach to the mail successfully, manually loop it:

what the patch does:
        fix gdigrab capture a window with hwnd shows "Invalid window
        handle x, must be a vlid integer", althought a valid integer is
        input

why:
        line 284 of libavdevice/gdigrab.c, one of the condition leads to
        check failed is p[0]='\0'. if a integer only string is process,
        the p[0] after strtoull process will be null which equal to
        '\0', otherwise, a non-integer string will make p[0] not null to
        pass the check

how:
        change p[0]=='\0' to p[0]!='\0' will works. no any side effect

reproduce and verify:
        a simple command: ffmpeg -f gdigrab -i hwnd=12345
        * althought a workaround command will work currently:
        *       ffmpeg -f gdigrab -i hwnd=12345x. (x could be any char)
________________________________
发件人: cyfdel@hotmail.com <cyfdel@hotmail.com>
发送时间: 2024年8月7日 15:58
收件人: ffmpeg-devel@ffmpeg.org <ffmpeg-devel@ffmpeg.org>
抄送: eaphone <cyfdel@hotmail.com>
主题: [PATCH v1] libavdevice/gdigrab: change hwnd tail check fail logic to !=null

From: eaphone <cyfdel@hotmail.com>

---
 libavdevice/gdigrab.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavdevice/gdigrab.c b/libavdevice/gdigrab.c
index c91661c556..08a41c304b 100644
--- a/libavdevice/gdigrab.c
+++ b/libavdevice/gdigrab.c
@@ -281,7 +281,7 @@ gdigrab_read_header(AVFormatContext *s1)

         hwnd = (HWND) strtoull(name, &p, 0);

-        if (p == NULL || p == name || p[0] == '\0')
+        if (p == NULL || p == name || p[0] != '\0')
         {
             av_log(s1, AV_LOG_ERROR,
                    "Invalid window handle '%s', must be a valid integer.\n", name);
--
2.45.2.windows.1

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

  reply	other threads:[~2024-08-07 16:58 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20240807155816.1412-1-cyfdel@hotmail.com>
2024-08-07 15:58 ` [FFmpeg-devel] " cyfdel-at-hotmail.com
2024-08-07 16:57   ` Cai Eaphone [this message]
2024-08-08 15:46   ` Zhao Zhili
2024-08-15 12:12     ` Zhao Zhili

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=TYAPR01MB32773086048477B9D134C090DEB82@TYAPR01MB3277.jpnprd01.prod.outlook.com \
    --to=cyfdel-at-hotmail.com@ffmpeg.org \
    --cc=ffmpeg-devel@ffmpeg.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git