[{"id":3685106,"web_url":"http://patchwork.ozlabs.org/comment/3685106/","msgid":"<CAMxuvay3C0rdWthOB_-oPUoCzHFcy9wF5MR7hCTUt4jcKjUQxA@mail.gmail.com>","list_archive_url":null,"date":"2026-05-01T11:41:39","subject":"Re: [PATCH] ui/gtk: Fix GTK assertion failure introduced with\n clipboard fixes","submitter":{"id":66774,"url":"http://patchwork.ozlabs.org/api/people/66774/","name":"Marc-André Lureau","email":"marcandre.lureau@redhat.com"},"content":"Hi\n\nOn Fri, May 1, 2026 at 12:10 PM Jindřich Makovička <makovick@gmail.com> wrote:\n>\n> gtk_clipboard_request_targets actually returns n_targets == -1\n> when targets ==  NULL instead of zero. This result in failed assertion\n> within GTK:\n>\n> qemu: Gtk: gtk_targets_include_text:\n> assertion 'targets != NULL || n_targets == 0' failed\n>\n> Extend the check to require non-null targets and positive n_targets.\n>\n> Signed-off-by: Jindrich Makovicka <makovick@gmail.com>\n\nReviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>\n\n> ---\n> Hi,\n>\n> with my latest gtk-clipboard changes, I introduced the following GTK\n> assertion failures due to unexpected n_targets value returned to\n> callback from gtk_clipboard_request_targets\n>\n> qemu: Gtk: gtk_targets_include_text:\n> assertion 'targets != NULL || n_targets == 0' failed\n>\n> from\n>\n> gboolean\n> gtk_targets_include_text (GdkAtom *targets,\n>                           gint     n_targets)\n> {\n>   gint i;\n>   gboolean result = FALSE;\n>\n>   g_return_val_if_fail (targets != NULL || n_targets == 0, FALSE);\n>\n>   /* Keep in sync with gtk_target_list_add_text_targets()\n>    */\n>\n>   init_atoms ();\n>\n>   for (i = 0; i < n_targets; i++)\n> ...\n>\n> GTK actually returns -1 instead of zero when there are no targets,\n> triggering the assert. The following patch extends the check to\n> non-null targets and positive n_targets to be on the safe side.\n> ---\n>  ui/gtk-clipboard.c | 2 +-\n>  1 file changed, 1 insertion(+), 1 deletion(-)\n>\n> diff --git a/ui/gtk-clipboard.c b/ui/gtk-clipboard.c\n> index 463ed4e905..ea9444be70 100644\n> --- a/ui/gtk-clipboard.c\n> +++ b/ui/gtk-clipboard.c\n> @@ -175,7 +175,7 @@ static void gd_clipboard_owner_change_targets_received_callback(\n>  {\n>      QemuClipboardInfo *info = (QemuClipboardInfo *)data;\n>\n> -    if (n_targets) {\n> +    if (targets && n_targets > 0) {\n>          if (gtk_targets_include_text(targets, n_targets)) {\n>              info->types[QEMU_CLIPBOARD_TYPE_TEXT].available = true;\n>          }\n>\n> ---\n> base-commit: 3d626609ccae61a2e552bccd59c7a0931bab8261\n> change-id: 20260501-clipboard-assert-fix-cc2bf8672eba\n>\n> Best regards,\n> --\n> Jindrich Makovicka\n>","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=Czwm//hx;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=google header.b=XJaroYBm;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g6Tfr4YZTz1xqf\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 01 May 2026 21:42:28 +1000 (AEST)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wImFr-0004Rr-Gi; Fri, 01 May 2026 07:41:59 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <mlureau@redhat.com>)\n id 1wImFp-0004RO-EZ\n for qemu-devel@nongnu.org; Fri, 01 May 2026 07:41:57 -0400","from us-smtp-delivery-124.mimecast.com ([170.10.129.124])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <mlureau@redhat.com>)\n id 1wImFn-0005Nd-WD\n for qemu-devel@nongnu.org; Fri, 01 May 2026 07:41:57 -0400","from mail-pg1-f199.google.com (mail-pg1-f199.google.com\n [209.85.215.199]) by relay.mimecast.com with ESMTP with STARTTLS\n (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n us-mta-339-uN71C5xyOWqRmRa_uOn9vw-1; Fri, 01 May 2026 07:41:53 -0400","by mail-pg1-f199.google.com with SMTP id\n 41be03b00d2f7-c7989b7cdd0so2208760a12.1\n for <qemu-devel@nongnu.org>; Fri, 01 May 2026 04:41:53 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1777635714;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=rc5UaK5DBFn3kJThVJPc+i62A7X0vRXUwIwOTZ+J9I4=;\n b=Czwm//hxcdXTuRZsRS34GOF5Fyqyjdmne21AqU5yNXxeBsALJKX5teUPvGvkPGhCv4LznA\n PLG/B/BDSfVJV6MgBCQ9RHXDTUs0SpjYZG2Kf+jLyaf9S7k99l5SXMJkGAzpmX4bW3AHrS\n 3Gths6dcxrCuK5dXMUq86qTBHp6y35o=","v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=redhat.com; s=google; t=1777635712; x=1778240512; darn=nongnu.org;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:from:to:cc:subject:date\n :message-id:reply-to;\n bh=rc5UaK5DBFn3kJThVJPc+i62A7X0vRXUwIwOTZ+J9I4=;\n b=XJaroYBm/5MbFDa9j8QCnZIZ+08e18dasnX5WvXwh1IKvqj0/cxwHMWH0HQuiuugd1\n m5zL/44rq0gPuJaxyqvf51q8YlC1Z9ZApKHIgdKthzNDNuKQrSwRV+AAx42H8T64N9yb\n KBEsV3PETte+YtVGFgGpzawPR0kcxyQ8NjfShrOlsfUX0wT7KzZrk3hc+GaI8J3OXIcX\n c5XuAYRy4Q44IvQl6CGtdGaXo78tRuxEcI8gR0p/E1jaMT0kMkbTSf8zj9m8u8F0gio2\n C/OlT1Z7Np1AI/uThOXLEsmzQV+BflH4GFu0RuQm23A0XO7VqPIdEoyWKhIe7Kdvc62e\n attg=="],"X-MC-Unique":"uN71C5xyOWqRmRa_uOn9vw-1","X-Mimecast-MFC-AGG-ID":"uN71C5xyOWqRmRa_uOn9vw_1777635712","ARC-Seal":"i=1; a=rsa-sha256; t=1777635712; cv=none;\n d=google.com; s=arc-20240605;\n b=KPvcqnNFTdufdzef+4v+i9J5bNMPx3auV7q3aHlkw3NlD8G4l5Vx5mQq6CP6ySudaH\n Nb5tmwISjD7vBkjLPyKEZ9WaP62sNoVFpww/Zqjc8DCc2jukWhNfZWUDu38nN+uVvpYR\n THLq69qhao9w17vOMWqGHKKCSL47nu9LIl4Cw1nbPqYCA+2DC92tJZHj/PoPUT0xapR3\n eFsCQOH8RkUo4ome0wuYm/EonaCcYjvNuT2EDWqdiOiUXqaBM5ocYyHj0O+ZZmTcLtVl\n QG33yWbsUcwQZXjEYkFmKksprkpLka6sBb6gLu1eg+mCKDznB6PjrQci0n3RNwBjsENj\n OcQw==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:dkim-signature;\n bh=rc5UaK5DBFn3kJThVJPc+i62A7X0vRXUwIwOTZ+J9I4=;\n fh=4ZWcHei1al8MHWxiiWVKDV8qSzUI2Ji2Zw2//G2KLgU=;\n b=gCo+XZ4ey9JYESOlDYxAnfdtO/JrpOBfYgyumxuIV1LSweyvKMhJETUtEFNqMnAw2s\n LaFQC7LEqMfw/pxgUXbQ6ztcjrI1YEGK9xgX8yjxpnLj4nh+tgihMF/Ziynuuk4Xz7xS\n /Ggq/HKTB6p7TJHNlt/6fSPmmq+iBRlIaoKHxjVGsDu6AFtthNF/2rXIvPc9xAnH7CYD\n eNfsxUfYQjHqceY2DJj+rcYRadeeOyJsLi8YvKkvkNKw3ppVdv9/XGSCZTaLYaZ0Mj56\n lslXWOrSAGpcv7UNFjWOalmVTSyeGyuwCKW69LbeGNNLIyeJ0ZOkTmbqFgWCFubI/e/S\n U5Kw==; darn=nongnu.org","ARC-Authentication-Results":"i=1; mx.google.com; arc=none","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1777635712; x=1778240512;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=rc5UaK5DBFn3kJThVJPc+i62A7X0vRXUwIwOTZ+J9I4=;\n b=a0otrI/LfCDWfRqw0AkI13A0cJUqvpsfNG5739RAFiTzZPiBi/yeMl8y7MilH/lkt/\n QtYQf2p/YQ8WBKUr+rYA+rqZRoV6IiCUKHtKpBNzt4w4YL3N0EgxMSoLdxK7elIOTB/r\n +booXW67hVD6098nJECZIiUdul0EAlJ9OQut5TN/EPiTLAHm4bce9Doo540owkF6c4aM\n 9WgHwbtB7AHw+imtgIo9FiV8VgeQWUsEinAz+tomyFljslsVpAB8S2zX1hcBFeD+PDuD\n qT7xgbO+KLzrOjD1d7J+55I1ie4zKp/gGydtB2wslaAlSYtM6GVjI/bt/MMkI1ztpxoN\n ePQQ==","X-Gm-Message-State":"AOJu0Yw90zPDfFbGaP+NMYIR0lsPIW4wRFFmGNV+WxO0Cr1qzWNUHB4f\n TDAYKAPZGwBZakDsFDQcSmMMq0yXQXiVJMAVWaTJyxKFEZbfB+120ceWFxwm3OrSGm0GcOlOva2\n Bk/tKDjGw+jHvCHlRvHoV1X+Wwz1R9VZcHTZYe6UY+++xMaskL1a/74FhGyepxN6j0agaU4RqWI\n XR3+ne5JNOedL/8tZOfsbNjYz+Hsr12Hc8rFV2GYA=","X-Gm-Gg":"AeBDieuG3n4X++scHAX16se00NbWiJOSscR/EsOw7gHpoZOzy9x/Nmhkd/T01Jfvu4x\n 2+GkIynVM0KvWBluHm0LOgaQmxUxp5X/mfEUeavlC+vye2SSR3nqsBhZvv/DC4UlZp0cQLzaU2X\n v1STBs7Ezt+VUkuIlETBwHvBV3mbQn6GNJL4QinSTyyPAQgDChOIygvFAcqHXcUn1/yJ/NNIY2O\n mA7TId62PYJVJNqmR643H1oCW/+XiEH1RoqdemFDjPJKJCzMoHSLO2Ng2lM3Ou9c139ui0fU6h+\n RJDBCe9VsNM6qaDwqONMymDHIbik+O84udk=","X-Received":["by 2002:a05:6a20:5493:b0:3a0:adc5:52c1 with SMTP id\n adf61e73a8af0-3a3cf566c0bmr7896582637.11.1777635711911;\n Fri, 01 May 2026 04:41:51 -0700 (PDT)","by 2002:a05:6a20:5493:b0:3a0:adc5:52c1 with SMTP id\n adf61e73a8af0-3a3cf566c0bmr7896561637.11.1777635711423; Fri, 01 May 2026\n 04:41:51 -0700 (PDT)"],"MIME-Version":"1.0","References":"<20260501-clipboard-assert-fix-v1-1-e549243e4583@gmail.com>","In-Reply-To":"<20260501-clipboard-assert-fix-v1-1-e549243e4583@gmail.com>","From":"=?utf-8?q?Marc-Andr=C3=A9_Lureau?= <marcandre.lureau@redhat.com>","Date":"Fri, 1 May 2026 15:41:39 +0400","X-Gm-Features":"AVHnY4LZ0M41lUfIHnpuUMGAzrWWPrg0_BQQZmMPDdj5LW_rgC1EvuYcs3eN76E","Message-ID":"\n <CAMxuvay3C0rdWthOB_-oPUoCzHFcy9wF5MR7hCTUt4jcKjUQxA@mail.gmail.com>","Subject":"Re: [PATCH] ui/gtk: Fix GTK assertion failure introduced with\n clipboard fixes","To":"=?utf-8?q?Jind=C5=99ich_Makovi=C4=8Dka?= <makovick@gmail.com>","Cc":"qemu-devel@nongnu.org","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","Received-SPF":"pass client-ip=170.10.129.124; envelope-from=mlureau@redhat.com;\n helo=us-smtp-delivery-124.mimecast.com","X-Spam_score_int":"-20","X-Spam_score":"-2.1","X-Spam_bar":"--","X-Spam_report":"(-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001,\n DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001,\n SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no","X-Spam_action":"no action","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"qemu development <qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"}}]