From nobody Tue Nov 26 16:40:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1706093005; cv=none; d=zohomail.com; s=zohoarc; b=GBAEgCcWHKIdnnpSs6zoL+G7gnJpl7YVSRw4VVM3pJrWC+FQ1v4orTKulcitJnJnMYJx+VohMzCPujfyTTBFFndf5IHyFkWwjncNOx+ikixlz6E51oDpsvUyCKqo3YS8fJYSuo2vV8zWqlsexIZfrblD3FXiw3oK+bt82V3R8Aw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1706093005; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=JyWoeTwTFJrwOepQC3Sda3BVDGkOofIimIJS4eeQWCE=; b=LuV9nMge8htM+KKlaPzzvFChuodhJT7tatQ1a/GO4YACne6cm0PkHNHTttpvWYaBs9bHjCtEjmqMJVD4arNJMX2C9PSrzHdbS2pFYPlqT2ZIP6z0VRHEkXzmhvTZLgATxXGcd+ah3eqe7G+1Q3VdpoVF2OtMWh0EO946WzTPJg8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1706093005900267.2926736360498; Wed, 24 Jan 2024 02:43:25 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rSaiR-0008B6-La; Wed, 24 Jan 2024 05:42:43 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rSaiQ-0008Am-E9 for qemu-devel@nongnu.org; Wed, 24 Jan 2024 05:42:42 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rSaiO-0008Eh-Ru for qemu-devel@nongnu.org; Wed, 24 Jan 2024 05:42:42 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-210-uVokYlJOP2q6s01sNwNRaQ-1; Wed, 24 Jan 2024 05:42:35 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 6E9D385A596; Wed, 24 Jan 2024 10:42:35 +0000 (UTC) Received: from thuth-p1g4.redhat.com (unknown [10.39.194.115]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7DD4B51D5; Wed, 24 Jan 2024 10:42:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1706092960; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=JyWoeTwTFJrwOepQC3Sda3BVDGkOofIimIJS4eeQWCE=; b=i4L2m8DwTHG96X0FJMySz/g6tQHLiY6lLDqR/gYI+OP2BNn6fFqBxgMsQ5wg4bb/MzWEtz 53aOqbydJ+wrOJEcBOxaepcQ8P/C3PolHrKpxrwyNYKq5S+ZAptM0IJpcJC0yb/+fZ+efU LzjCO8uAkFJF+Hz4NTM163kCeHgGWYc= X-MC-Unique: uVokYlJOP2q6s01sNwNRaQ-1 From: Thomas Huth To: qemu-devel@nongnu.org Cc: Peter Maydell Subject: [PULL 1/7] tests/qtest: Bump timeout of the boot-serial-test to 360 seconds Date: Wed, 24 Jan 2024 11:42:25 +0100 Message-ID: <20240124104231.603418-2-thuth@redhat.com> In-Reply-To: <20240124104231.603418-1-thuth@redhat.com> References: <20240124104231.603418-1-thuth@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.5 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=thuth@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -33 X-Spam_score: -3.4 X-Spam_bar: --- X-Spam_report: (-3.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1.327, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1706093006545100001 On the slow k8s CI runner, the test sometimes takes more than 240 seconds. See for example this run here where it took ~ 267 seconds: https://gitlab.com/qemu-project/qemu/-/jobs/5806087027#L4769 Thus we have to bump the timeout here even further to be on the safe side. Let's use 360 seconds which should hopefully really be high enough now. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2097 Message-ID: <20240123110353.30658-1-thuth@redhat.com> Reviewed-by: "Daniel P. Berrang=C3=A9" Signed-off-by: Thomas Huth --- tests/qtest/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build index d22434b14e..d22aec6734 100644 --- a/tests/qtest/meson.build +++ b/tests/qtest/meson.build @@ -9,7 +9,7 @@ slow_qtests =3D { 'test-hmp' : 240, 'pxe-test': 600, 'prom-env-test': 360, - 'boot-serial-test': 240, + 'boot-serial-test': 360, 'qos-test': 120, } =20 --=20 2.43.0 From nobody Tue Nov 26 16:40:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1706093000; cv=none; d=zohomail.com; s=zohoarc; b=kHCW629U1I74dXmE3cJ4w4VlniPZMgE+Y8ocD2rQDhebPvcTVEEyLBJhKSUe+48fKoSFGJ5Esw9cIKYNV8ZKvl0qZswPtsdUZNp9gNzkemamVI+H/D35zAtMwZGtPgERm5ztQPpqlllvtioikFgcbpe1Apmez9d4y8lW+nP/ZRA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1706093000; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=qG7LlzPFeAc3w9HYJJ45DfjcNzEfiyMt+pw3J22zwoI=; b=Ea7mf3gXmmDsLqREWzzxNZFe4Ds2XerQDJ6Yf0vPMGqylCycPXbGXQVexPpOcutlJThDvz9Fau7/SvkxTr1sCcv8XMa+FqNi/utueuIIAvp/XLiCDI/hX5wEG1TiER8VCESH0YelvoblJwrBEPnH63aEcVCUpY2RaPlAdK5WE18= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1706093000541859.3070573380332; Wed, 24 Jan 2024 02:43:20 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rSaiS-0008Bd-V8; Wed, 24 Jan 2024 05:42:44 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rSaiR-0008Aw-6s for qemu-devel@nongnu.org; Wed, 24 Jan 2024 05:42:43 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rSaiP-0008Em-Od for qemu-devel@nongnu.org; Wed, 24 Jan 2024 05:42:42 -0500 Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-212-uxm4KSp-MVSMTZMSRau3GQ-1; Wed, 24 Jan 2024 05:42:37 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 168743C0F36F; Wed, 24 Jan 2024 10:42:37 +0000 (UTC) Received: from thuth-p1g4.redhat.com (unknown [10.39.194.115]) by smtp.corp.redhat.com (Postfix) with ESMTP id 171ED51D5; Wed, 24 Jan 2024 10:42:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1706092961; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=qG7LlzPFeAc3w9HYJJ45DfjcNzEfiyMt+pw3J22zwoI=; b=OXpod+yRWpkZnhcGllYCscCNPOufmSW7IvaB8MTKIoZfIIoUVePTRs4+PiuM7UlRfEt9FK PzJVpWlbvnzoBUUzL2OPfNmCMunIGG22GDss45lQxQcONXw8A7JmOwVlERTnV324PG5xQk 2TgkhsEmj31qOGgfnErY1ZiWASnIXyM= X-MC-Unique: uxm4KSp-MVSMTZMSRau3GQ-1 From: Thomas Huth To: qemu-devel@nongnu.org Cc: Peter Maydell Subject: [PULL 2/7] tests/unit/test-iov: Fix timeout problem on NetBSD and OpenBSD Date: Wed, 24 Jan 2024 11:42:26 +0100 Message-ID: <20240124104231.603418-3-thuth@redhat.com> In-Reply-To: <20240124104231.603418-1-thuth@redhat.com> References: <20240124104231.603418-1-thuth@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.5 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=thuth@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -33 X-Spam_score: -3.4 X-Spam_bar: --- X-Spam_report: (-3.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1.327, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1706093002523100003 The test-iov code uses usleep() with small values (<=3D 30) in some nested loops with many iterations. This causes a small delay on OSes like Linux that have a precise sleeping mechanism, but on systems like NetBSD and OpenBSD, each usleep() call takes multiple microseconds, which then sum up in a total test time of multiple minutes! Looking at the code, the usleep() does not really seem to be necessary here - if not enough data could be send, we should simply always use select() to wait 'til we can send more. Thus remove the usleep() and re-arrange the code a little bit to make it more clear what is going on here. Suggested-by: "Daniel P. Berrang=C3=A9" Message-ID: <20240122153347.71654-1-thuth@redhat.com> Reviewed-by: "Daniel P. Berrang=C3=A9" Signed-off-by: Thomas Huth --- tests/unit/test-iov.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/tests/unit/test-iov.c b/tests/unit/test-iov.c index 6f7623d310..75bc3be005 100644 --- a/tests/unit/test-iov.c +++ b/tests/unit/test-iov.c @@ -197,15 +197,17 @@ static void test_io(void) s =3D g_test_rand_int_range(0, j - k + 1); r =3D iov_send(sv[1], iov, niov, k, s); g_assert(memcmp(iov, siov, sizeof(*iov)*niov) =3D=3D 0); - if (r >=3D 0) { - k +=3D r; - usleep(g_test_rand_int_range(0, 30)); - } else if (errno =3D=3D EAGAIN) { - select(sv[1]+1, NULL, &fds, NULL, NULL); - continue; - } else { - perror("send"); - exit(1); + if (r < 0) { + if (errno =3D=3D EAGAIN) { + r =3D 0; + } else { + perror("send"); + exit(1); + } + } + k +=3D r; + if (k < j) { + select(sv[1] + 1, NULL, &fds, NULL, NULL); } } while(k < j); } --=20 2.43.0 From nobody Tue Nov 26 16:40:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1706093033; cv=none; d=zohomail.com; s=zohoarc; b=AEuwf7VYtq2SFlD9+e0uMkVV6CDnK23buN4ivpgosgiirzQSLr5t45fkNyzWisikWjRLGudfG4LkTlYjmE/YGECAPOFTOeQSa/6ZDmpkx9uvPyJ8C+8LFh+NOV7z8NQxH7PAslB889ObKt3BQ4/qa04qG12mUR/GGjxnEGSM8M4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1706093033; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=A45Q/lpxx+k5JQwDO5xkhDW1c9lBDbn8vp79cvBB7HQ=; b=RVoSXaoPZoIP9T3Em5JHaPs8DXuRMxSyGW+pSZUNIp2Jh3gI0pfmHJtfwmmeCudVA2zGy3Frop/Kov6ztAaJVl9Tkl4VtBN1wseW/+yWvjB/i9yXuHRx0NyE/jxTDyKpVWim3FHJgIbdtg8kr83Sfvtwpp2f4Blgq+UnZsI2ozY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1706093033780975.2355016097227; Wed, 24 Jan 2024 02:43:53 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rSaiV-0008Dc-BA; Wed, 24 Jan 2024 05:42:47 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rSaiT-0008Bu-7Q for qemu-devel@nongnu.org; Wed, 24 Jan 2024 05:42:45 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rSaiR-0008F7-Jn for qemu-devel@nongnu.org; Wed, 24 Jan 2024 05:42:44 -0500 Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-263-A0x5mbFYMyKgtEsNhJrgQw-1; Wed, 24 Jan 2024 05:42:38 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 6522A1C05141; Wed, 24 Jan 2024 10:42:38 +0000 (UTC) Received: from thuth-p1g4.redhat.com (unknown [10.39.194.115]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8F1E651D5; Wed, 24 Jan 2024 10:42:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1706092962; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=A45Q/lpxx+k5JQwDO5xkhDW1c9lBDbn8vp79cvBB7HQ=; b=Fm4rq+TcPRW1wdKhqnUllu6KQCm5AUroUoKzYlDHdbRN6v3HxMnon3gURBHw64vjFaKOLQ rpnhuKOFgDdTIt9TBMpB+6PJh1JimWUt08cijr7Ao564KpTbmrgPChegOUDEk5menAvpvF rft8ubAzg0OUgXdq5cQvRLSc3Y4vfWw= X-MC-Unique: A0x5mbFYMyKgtEsNhJrgQw-1 From: Thomas Huth To: qemu-devel@nongnu.org Cc: Peter Maydell Subject: [PULL 3/7] tests/qtest: Bump timeouts of boot_sector_test()-based tests to 610 seconds Date: Wed, 24 Jan 2024 11:42:27 +0100 Message-ID: <20240124104231.603418-4-thuth@redhat.com> In-Reply-To: <20240124104231.603418-1-thuth@redhat.com> References: <20240124104231.603418-1-thuth@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.5 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=thuth@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -33 X-Spam_score: -3.4 X-Spam_bar: --- X-Spam_report: (-3.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1.327, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1706093034652100001 We're still seeing timeouts in qtests that use a TCG payload with TCI on a slow k8s runner: https://gitlab.com/qemu-project/qemu/-/jobs/5990992722 So we should bump the timeout of cdrom-test to see whether that fixes the issue. Now, cdrom-test, as bios-tables-test, pxe-test and vmgenid-test use the boot_sector_test() function for running a TCG payload. That function already uses an internal timeout of 600 seconds with the remark that the test could be slow with TCI. Thus from the outer meson test runner side, we should not use less than 600 seconds as timeout values for these tests. Let's bump them on the meson side to 610 seconds so that the tests themselves can run with their internal 600 seconds timeout and have some additional seconds on top for reporting the outcome. Message-ID: <20240124084412.465638-1-thuth@redhat.com> Reviewed-by: "Daniel P. Berrang=C3=A9" Signed-off-by: Thomas Huth --- tests/qtest/meson.build | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build index d22aec6734..84a055a7d9 100644 --- a/tests/qtest/meson.build +++ b/tests/qtest/meson.build @@ -1,16 +1,18 @@ slow_qtests =3D { 'aspeed_smc-test': 360, - 'bios-tables-test' : 540, + 'bios-tables-test' : 610, + 'cdrom-test' : 610, 'device-introspect-test' : 720, 'migration-test' : 480, 'npcm7xx_pwm-test': 300, 'npcm7xx_watchdog_timer-test': 120, 'qom-test' : 900, 'test-hmp' : 240, - 'pxe-test': 600, + 'pxe-test': 610, 'prom-env-test': 360, 'boot-serial-test': 360, 'qos-test': 120, + 'vmgenid-test': 610, } =20 qtests_generic =3D [ --=20 2.43.0 From nobody Tue Nov 26 16:40:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1706092986; cv=none; d=zohomail.com; s=zohoarc; b=UQ6dj5FT2DN71lRUiJwBY6Yto2qwAiOozHGSubqQZxZZGoHsaE8FAVZjMh1G8wsBBukXFtsloLtW5cHXmtFeGDicmK1608arRENdIBqYxsWtKzCKBb301uth/ejUoN/6yR4N+xrtQh8jJEMR209hq00QxpbwSztBavz8K4zS30Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1706092986; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=xEohwW+frIHgQpcT2dkOzL2eiqZNhael6KKxnjbb308=; b=CEw1FpE3Jk52KKcMqU20AAS2iu4dsMBAcdsrchFImjeRrvQ6oqsVtLDNAn8x9uuNIiqVEjjNtOEFX3frvHCeZZUvXm34lFMjlYjPeHmEvJn6j4YER8WIkr4QOa1xsFq5VeXKwFIGN6n44i5jivlKizFF9PS7dKiBHe1b4Kcgq+Q= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1706092986798504.97681979880053; Wed, 24 Jan 2024 02:43:06 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rSaiU-0008C9-PA; Wed, 24 Jan 2024 05:42:46 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rSaiS-0008BT-Kb for qemu-devel@nongnu.org; Wed, 24 Jan 2024 05:42:44 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rSaiQ-0008Es-Pm for qemu-devel@nongnu.org; Wed, 24 Jan 2024 05:42:44 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-335-ei4pEaRZP7irVGfJCjJ3Kg-1; Wed, 24 Jan 2024 05:42:39 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 9D14C80007C; Wed, 24 Jan 2024 10:42:39 +0000 (UTC) Received: from thuth-p1g4.redhat.com (unknown [10.39.194.115]) by smtp.corp.redhat.com (Postfix) with ESMTP id D35A551D5; Wed, 24 Jan 2024 10:42:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1706092962; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=xEohwW+frIHgQpcT2dkOzL2eiqZNhael6KKxnjbb308=; b=PZ0ncUjBUV158TKxB/c3AycyyCbdbLeDIhQqcj222LCr+brRYZKWw6qxODvMpb7TLV+9sL bAs57Q/inVD4xev8mOMH3j+LSNNJKz4ESc0dHjlvDOHx4YqQUXfLf6Xk+KBG7rlMkvpmHi Ji1Qg5HPG/3Vo/uuAEMysJFoCTQJGzU= X-MC-Unique: ei4pEaRZP7irVGfJCjJ3Kg-1 From: Thomas Huth To: qemu-devel@nongnu.org Cc: Peter Maydell Subject: [PULL 4/7] util/uri: Remove uri_string_unescape() Date: Wed, 24 Jan 2024 11:42:28 +0100 Message-ID: <20240124104231.603418-5-thuth@redhat.com> In-Reply-To: <20240124104231.603418-1-thuth@redhat.com> References: <20240124104231.603418-1-thuth@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.5 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=thuth@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -33 X-Spam_score: -3.4 X-Spam_bar: --- X-Spam_report: (-3.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1.327, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1706092988503100003 Content-Type: text/plain; charset="utf-8" uri_string_unescape() basically does the same as the glib function g_uri_unescape_segment(). So we can get rid of our implementation completely by simply using the glib function instead. Suggested-by: Stefan Weil Suggested-by: Paolo Bonzini Message-ID: <20240123182247.432642-2-thuth@redhat.com> Reviewed-by: Richard Henderson Reviewed-by: Stefan Weil Signed-off-by: Thomas Huth --- include/qemu/uri.h | 1 - util/uri.c | 97 ++++++---------------------------------------- 2 files changed, 11 insertions(+), 87 deletions(-) diff --git a/include/qemu/uri.h b/include/qemu/uri.h index 1855b764f2..f0722b75da 100644 --- a/include/qemu/uri.h +++ b/include/qemu/uri.h @@ -79,7 +79,6 @@ URI *uri_parse_raw(const char *str, int raw); int uri_parse_into(URI *uri, const char *str); char *uri_to_string(URI *uri); char *uri_string_escape(const char *str, const char *list); -char *uri_string_unescape(const char *str, int len, char *target); void uri_free(URI *uri); =20 /* Single web service query parameter 'name=3Dvalue'. */ diff --git a/util/uri.c b/util/uri.c index dcb3305236..fb7823a43c 100644 --- a/util/uri.c +++ b/util/uri.c @@ -267,7 +267,7 @@ static int rfc3986_parse_fragment(URI *uri, const char = **str) if (uri->cleanup & 2) { uri->fragment =3D g_strndup(*str, cur - *str); } else { - uri->fragment =3D uri_string_unescape(*str, cur - *str, NULL); + uri->fragment =3D g_uri_unescape_segment(*str, cur, NULL); } } *str =3D cur; @@ -368,7 +368,7 @@ static int rfc3986_parse_user_info(URI *uri, const char= **str) if (uri->cleanup & 2) { uri->user =3D g_strndup(*str, cur - *str); } else { - uri->user =3D uri_string_unescape(*str, cur - *str, NULL); + uri->user =3D g_uri_unescape_segment(*str, cur, NULL); } } *str =3D cur; @@ -496,7 +496,7 @@ found: if (uri->cleanup & 2) { uri->server =3D g_strndup(host, cur - host); } else { - uri->server =3D uri_string_unescape(host, cur - host, NULL= ); + uri->server =3D g_uri_unescape_segment(host, cur, NULL); } } else { uri->server =3D NULL; @@ -614,7 +614,7 @@ static int rfc3986_parse_path_ab_empty(URI *uri, const = char **str) if (uri->cleanup & 2) { uri->path =3D g_strndup(*str, cur - *str); } else { - uri->path =3D uri_string_unescape(*str, cur - *str, NULL); + uri->path =3D g_uri_unescape_segment(*str, cur, NULL); } } else { uri->path =3D NULL; @@ -663,7 +663,7 @@ static int rfc3986_parse_path_absolute(URI *uri, const = char **str) if (uri->cleanup & 2) { uri->path =3D g_strndup(*str, cur - *str); } else { - uri->path =3D uri_string_unescape(*str, cur - *str, NULL); + uri->path =3D g_uri_unescape_segment(*str, cur, NULL); } } else { uri->path =3D NULL; @@ -709,7 +709,7 @@ static int rfc3986_parse_path_rootless(URI *uri, const = char **str) if (uri->cleanup & 2) { uri->path =3D g_strndup(*str, cur - *str); } else { - uri->path =3D uri_string_unescape(*str, cur - *str, NULL); + uri->path =3D g_uri_unescape_segment(*str, cur, NULL); } } else { uri->path =3D NULL; @@ -755,7 +755,7 @@ static int rfc3986_parse_path_no_scheme(URI *uri, const= char **str) if (uri->cleanup & 2) { uri->path =3D g_strndup(*str, cur - *str); } else { - uri->path =3D uri_string_unescape(*str, cur - *str, NULL); + uri->path =3D g_uri_unescape_segment(*str, cur, NULL); } } else { uri->path =3D NULL; @@ -1561,81 +1561,6 @@ done_cd: return 0; } =20 -static int is_hex(char c) -{ - if (((c >=3D '0') && (c <=3D '9')) || ((c >=3D 'a') && (c <=3D 'f')) || - ((c >=3D 'A') && (c <=3D 'F'))) { - return 1; - } - return 0; -} - -/** - * uri_string_unescape: - * @str: the string to unescape - * @len: the length in bytes to unescape (or <=3D 0 to indicate full str= ing) - * @target: optional destination buffer - * - * Unescaping routine, but does not check that the string is an URI. The - * output is a direct unsigned char translation of %XX values (no encoding) - * Note that the length of the result can only be smaller or same size as - * the input string. - * - * Returns a copy of the string, but unescaped, will return NULL only in c= ase - * of error - */ -char *uri_string_unescape(const char *str, int len, char *target) -{ - char *ret, *out; - const char *in; - - if (str =3D=3D NULL) { - return NULL; - } - if (len <=3D 0) { - len =3D strlen(str); - } - if (len < 0) { - return NULL; - } - - if (target =3D=3D NULL) { - ret =3D g_malloc(len + 1); - } else { - ret =3D target; - } - in =3D str; - out =3D ret; - while (len > 0) { - if ((len > 2) && (*in =3D=3D '%') && (is_hex(in[1])) && (is_hex(in= [2]))) { - in++; - if ((*in >=3D '0') && (*in <=3D '9')) { - *out =3D (*in - '0'); - } else if ((*in >=3D 'a') && (*in <=3D 'f')) { - *out =3D (*in - 'a') + 10; - } else if ((*in >=3D 'A') && (*in <=3D 'F')) { - *out =3D (*in - 'A') + 10; - } - in++; - if ((*in >=3D '0') && (*in <=3D '9')) { - *out =3D *out * 16 + (*in - '0'); - } else if ((*in >=3D 'a') && (*in <=3D 'f')) { - *out =3D *out * 16 + (*in - 'a') + 10; - } else if ((*in >=3D 'A') && (*in <=3D 'F')) { - *out =3D *out * 16 + (*in - 'A') + 10; - } - in++; - len -=3D 3; - out++; - } else { - *out++ =3D *in++; - len--; - } - } - *out =3D 0; - return ret; -} - /** * uri_string_escape: * @str: string to escape @@ -2274,14 +2199,14 @@ struct QueryParams *query_params_parse(const char *= query) * and consistent with CGI.pm we assume value is "". */ else if (!eq) { - name =3D uri_string_unescape(query, end - query, NULL); + name =3D g_uri_unescape_segment(query, end, NULL); value =3D NULL; } /* Or if we have "name=3D" here (works around annoying * problem when calling uri_string_unescape with len =3D 0). */ else if (eq + 1 =3D=3D end) { - name =3D uri_string_unescape(query, eq - query, NULL); + name =3D g_uri_unescape_segment(query, eq, NULL); value =3D g_new0(char, 1); } /* If the '=3D' character is at the beginning then we have @@ -2293,8 +2218,8 @@ struct QueryParams *query_params_parse(const char *qu= ery) =20 /* Otherwise it's "name=3Dvalue". */ else { - name =3D uri_string_unescape(query, eq - query, NULL); - value =3D uri_string_unescape(eq + 1, end - (eq + 1), NULL); + name =3D g_uri_unescape_segment(query, eq, NULL); + value =3D g_uri_unescape_segment(eq + 1, end, NULL); } =20 /* Append to the parameter set. */ --=20 2.43.0 From nobody Tue Nov 26 16:40:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1706093020; cv=none; d=zohomail.com; s=zohoarc; b=J3H4XQJl5bhEHWLUPMcu8igimD5yroVfZ7NYsb8p3KvgDCOhlBFB+LtVJVHYyDmxpTGoNDTx+v49ZwidEBLeZRjC9v1UEUshRL3XraGLZZYhIBegz+sR9dDIfGOJv8RJj32QqDDQ11GK2aGAPm3xX5mtW6zWDt6P+rJeSUZnK9c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1706093020; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=iU1dyfBrPAP3iQhXRdoJEv76dxvlCfE0rmixQGBJbf8=; b=M+h+MIQ1l44tH9NvRcKVzz8G7jd6d1wWcyOKFB0TxoY1qg4v2D8Ki456rWo7sS3CCDTz8mMHec60sRJQL/mg7mG5jywj/UHhzP/0xzaalPxOqVGTGN74oggXDTnbtW1eGKiqGTz5fPSf3Ebfj1p9NXQGv9i/w9tGioKkyFnzhNU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1706093020200226.59773891867803; Wed, 24 Jan 2024 02:43:40 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rSaiY-0008I6-Kz; Wed, 24 Jan 2024 05:42:50 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rSaiX-0008H6-FY for qemu-devel@nongnu.org; Wed, 24 Jan 2024 05:42:49 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rSaiU-0008Fd-I6 for qemu-devel@nongnu.org; Wed, 24 Jan 2024 05:42:49 -0500 Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-8-VTIg3_WAOOSrtotyBzEgWg-1; Wed, 24 Jan 2024 05:42:42 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 50E9A2823801; Wed, 24 Jan 2024 10:42:41 +0000 (UTC) Received: from thuth-p1g4.redhat.com (unknown [10.39.194.115]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2100551D5; Wed, 24 Jan 2024 10:42:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1706092965; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=iU1dyfBrPAP3iQhXRdoJEv76dxvlCfE0rmixQGBJbf8=; b=PjU0Ghm5EYRHKa6eaLPX/Pv2TNqCWgOyDyyfYwQ/pvkvGdey/urBv8d5MorFdJNV8r3Q7Q Yy98Vr1TngcSErC5aBUjb0nKGQByTKmXgzMKVo6cNNK/o43cIcY9WaurwRoTsb28Qxw6F/ hSEL35huxpGgTXPZU/uEk0soGHOJ8Sk= X-MC-Unique: VTIg3_WAOOSrtotyBzEgWg-1 From: Thomas Huth To: qemu-devel@nongnu.org Cc: Peter Maydell Subject: [PULL 5/7] util/uri: Remove unused functions uri_resolve() and uri_resolve_relative() Date: Wed, 24 Jan 2024 11:42:29 +0100 Message-ID: <20240124104231.603418-6-thuth@redhat.com> In-Reply-To: <20240124104231.603418-1-thuth@redhat.com> References: <20240124104231.603418-1-thuth@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.5 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=thuth@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -33 X-Spam_score: -3.4 X-Spam_bar: --- X-Spam_report: (-3.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1.327, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1706093020632100001 These rather complex functions have never been used since they've been introduced in 2012, so looks like they are not really useful for QEMU. And since the static normalize_uri_path() function is also only used by uri_resolve(), we can remove that function now, too. Reviewed-by: Stefan Weil Reviewed-by: "Daniel P. Berrang=C3=A9" Message-ID: <20240123182247.432642-3-thuth@redhat.com> Reviewed-by: Richard Henderson Signed-off-by: Thomas Huth --- include/qemu/uri.h | 2 - util/uri.c | 689 --------------------------------------------- 2 files changed, 691 deletions(-) diff --git a/include/qemu/uri.h b/include/qemu/uri.h index f0722b75da..899ce852f5 100644 --- a/include/qemu/uri.h +++ b/include/qemu/uri.h @@ -72,8 +72,6 @@ typedef struct URI { } URI; =20 URI *uri_new(void); -char *uri_resolve(const char *URI, const char *base); -char *uri_resolve_relative(const char *URI, const char *base); URI *uri_parse(const char *str); URI *uri_parse_raw(const char *str, int raw); int uri_parse_into(URI *uri, const char *str); diff --git a/util/uri.c b/util/uri.c index fb7823a43c..1891ca6fb3 100644 --- a/util/uri.c +++ b/util/uri.c @@ -1355,212 +1355,6 @@ void uri_free(URI *uri) * * ************************************************************************/ =20 -/** - * normalize_uri_path: - * @path: pointer to the path string - * - * Applies the 5 normalization steps to a path string--that is, RFC 2396 - * Section 5.2, steps 6.c through 6.g. - * - * Normalization occurs directly on the string, no new allocation is done - * - * Returns 0 or an error code - */ -static int normalize_uri_path(char *path) -{ - char *cur, *out; - - if (path =3D=3D NULL) { - return -1; - } - - /* Skip all initial "/" chars. We want to get to the beginning of the - * first non-empty segment. - */ - cur =3D path; - while (cur[0] =3D=3D '/') { - ++cur; - } - if (cur[0] =3D=3D '\0') { - return 0; - } - - /* Keep everything we've seen so far. */ - out =3D cur; - - /* - * Analyze each segment in sequence for cases (c) and (d). - */ - while (cur[0] !=3D '\0') { - /* - * c) All occurrences of "./", where "." is a complete path segmen= t, - * are removed from the buffer string. - */ - if ((cur[0] =3D=3D '.') && (cur[1] =3D=3D '/')) { - cur +=3D 2; - /* '//' normalization should be done at this point too */ - while (cur[0] =3D=3D '/') { - cur++; - } - continue; - } - - /* - * d) If the buffer string ends with "." as a complete path segmen= t, - * that "." is removed. - */ - if ((cur[0] =3D=3D '.') && (cur[1] =3D=3D '\0')) { - break; - } - - /* Otherwise keep the segment. */ - while (cur[0] !=3D '/') { - if (cur[0] =3D=3D '\0') { - goto done_cd; - } - (out++)[0] =3D (cur++)[0]; - } - /* nomalize // */ - while ((cur[0] =3D=3D '/') && (cur[1] =3D=3D '/')) { - cur++; - } - - (out++)[0] =3D (cur++)[0]; - } -done_cd: - out[0] =3D '\0'; - - /* Reset to the beginning of the first segment for the next sequence. = */ - cur =3D path; - while (cur[0] =3D=3D '/') { - ++cur; - } - if (cur[0] =3D=3D '\0') { - return 0; - } - - /* - * Analyze each segment in sequence for cases (e) and (f). - * - * e) All occurrences of "/../", where is a - * complete path segment not equal to "..", are removed from the - * buffer string. Removal of these path segments is performed - * iteratively, removing the leftmost matching pattern on each - * iteration, until no matching pattern remains. - * - * f) If the buffer string ends with "/..", where - * is a complete path segment not equal to "..", that - * "/.." is removed. - * - * To satisfy the "iterative" clause in (e), we need to collapse the - * string every time we find something that needs to be removed. Thus, - * we don't need to keep two pointers into the string: we only need a - * "current position" pointer. - */ - while (1) { - char *segp, *tmp; - - /* At the beginning of each iteration of this loop, "cur" points to - * the first character of the segment we want to examine. - */ - - /* Find the end of the current segment. */ - segp =3D cur; - while ((segp[0] !=3D '/') && (segp[0] !=3D '\0')) { - ++segp; - } - - /* If this is the last segment, we're done (we need at least two - * segments to meet the criteria for the (e) and (f) cases). - */ - if (segp[0] =3D=3D '\0') { - break; - } - - /* If the first segment is "..", or if the next segment _isn't_ ".= .", - * keep this segment and try the next one. - */ - ++segp; - if (((cur[0] =3D=3D '.') && (cur[1] =3D=3D '.') && (segp =3D=3D cu= r + 3)) || - ((segp[0] !=3D '.') || (segp[1] !=3D '.') || - ((segp[2] !=3D '/') && (segp[2] !=3D '\0')))) { - cur =3D segp; - continue; - } - - /* If we get here, remove this segment and the next one and back up - * to the previous segment (if there is one), to implement the - * "iteratively" clause. It's pretty much impossible to back up - * while maintaining two pointers into the buffer, so just compact - * the whole buffer now. - */ - - /* If this is the end of the buffer, we're done. */ - if (segp[2] =3D=3D '\0') { - cur[0] =3D '\0'; - break; - } - /* Valgrind complained, strcpy(cur, segp + 3); */ - /* string will overlap, do not use strcpy */ - tmp =3D cur; - segp +=3D 3; - while ((*tmp++ =3D *segp++) !=3D 0) { - /* No further work */ - } - - /* If there are no previous segments, then keep going from here. = */ - segp =3D cur; - while ((segp > path) && ((--segp)[0] =3D=3D '/')) { - /* No further work */ - } - if (segp =3D=3D path) { - continue; - } - - /* "segp" is pointing to the end of a previous segment; find it's - * start. We need to back up to the previous segment and start - * over with that to handle things like "foo/bar/../..". If we - * don't do this, then on the first pass we'll remove the "bar/..", - * but be pointing at the second ".." so we won't realize we can a= lso - * remove the "foo/..". - */ - cur =3D segp; - while ((cur > path) && (cur[-1] !=3D '/')) { - --cur; - } - } - out[0] =3D '\0'; - - /* - * g) If the resulting buffer string still begins with one or more - * complete path segments of "..", then the reference is - * considered to be in error. Implementations may handle this - * error by retaining these components in the resolved path (i.e., - * treating them as part of the final URI), by removing them from - * the resolved path (i.e., discarding relative levels above the - * root), or by avoiding traversal of the reference. - * - * We discard them from the final path. - */ - if (path[0] =3D=3D '/') { - cur =3D path; - while ((cur[0] =3D=3D '/') && (cur[1] =3D=3D '.') && (cur[2] =3D= =3D '.') && - ((cur[3] =3D=3D '/') || (cur[3] =3D=3D '\0'))) { - cur +=3D 3; - } - - if (cur !=3D path) { - out =3D path; - while (cur[0] !=3D '\0') { - (out++)[0] =3D (cur++)[0]; - } - out[0] =3D 0; - } - } - - return 0; -} - /** * uri_string_escape: * @str: string to escape @@ -1631,489 +1425,6 @@ char *uri_string_escape(const char *str, const char= *list) * * ************************************************************************/ =20 -/** - * uri_resolve: - * @URI: the URI instance found in the document - * @base: the base value - * - * Computes he final URI of the reference done by checking that - * the given URI is valid, and building the final URI using the - * base URI. This is processed according to section 5.2 of the - * RFC 2396 - * - * 5.2. Resolving Relative References to Absolute Form - * - * Returns a new URI string (to be freed by the caller) or NULL in case - * of error. - */ -char *uri_resolve(const char *uri, const char *base) -{ - char *val =3D NULL; - int ret, len, indx, cur, out; - URI *ref =3D NULL; - URI *bas =3D NULL; - URI *res =3D NULL; - - /* - * 1) The URI reference is parsed into the potential four components a= nd - * fragment identifier, as described in Section 4.3. - * - * NOTE that a completely empty URI is treated by modern browsers - * as a reference to "." rather than as a synonym for the current - * URI. Should we do that here? - */ - if (uri =3D=3D NULL) { - ret =3D -1; - } else { - if (*uri) { - ref =3D uri_new(); - ret =3D uri_parse_into(ref, uri); - } else { - ret =3D 0; - } - } - if (ret !=3D 0) { - goto done; - } - if ((ref !=3D NULL) && (ref->scheme !=3D NULL)) { - /* - * The URI is absolute don't modify. - */ - val =3D g_strdup(uri); - goto done; - } - if (base =3D=3D NULL) { - ret =3D -1; - } else { - bas =3D uri_new(); - ret =3D uri_parse_into(bas, base); - } - if (ret !=3D 0) { - if (ref) { - val =3D uri_to_string(ref); - } - goto done; - } - if (ref =3D=3D NULL) { - /* - * the base fragment must be ignored - */ - g_free(bas->fragment); - bas->fragment =3D NULL; - val =3D uri_to_string(bas); - goto done; - } - - /* - * 2) If the path component is empty and the scheme, authority, and - * query components are undefined, then it is a reference to the - * current document and we are done. Otherwise, the reference URI's - * query and fragment components are defined as found (or not found) - * within the URI reference and not inherited from the base URI. - * - * NOTE that in modern browsers, the parsing differs from the above - * in the following aspect: the query component is allowed to be - * defined while still treating this as a reference to the current - * document. - */ - res =3D uri_new(); - if ((ref->scheme =3D=3D NULL) && (ref->path =3D=3D NULL) && - ((ref->authority =3D=3D NULL) && (ref->server =3D=3D NULL))) { - res->scheme =3D g_strdup(bas->scheme); - if (bas->authority !=3D NULL) { - res->authority =3D g_strdup(bas->authority); - } else if (bas->server !=3D NULL) { - res->server =3D g_strdup(bas->server); - res->user =3D g_strdup(bas->user); - res->port =3D bas->port; - } - res->path =3D g_strdup(bas->path); - if (ref->query !=3D NULL) { - res->query =3D g_strdup(ref->query); - } else { - res->query =3D g_strdup(bas->query); - } - res->fragment =3D g_strdup(ref->fragment); - goto step_7; - } - - /* - * 3) If the scheme component is defined, indicating that the reference - * starts with a scheme name, then the reference is interpreted as = an - * absolute URI and we are done. Otherwise, the reference URI's - * scheme is inherited from the base URI's scheme component. - */ - if (ref->scheme !=3D NULL) { - val =3D uri_to_string(ref); - goto done; - } - res->scheme =3D g_strdup(bas->scheme); - - res->query =3D g_strdup(ref->query); - res->fragment =3D g_strdup(ref->fragment); - - /* - * 4) If the authority component is defined, then the reference is a - * network-path and we skip to step 7. Otherwise, the reference - * URI's authority is inherited from the base URI's authority - * component, which will also be undefined if the URI scheme does n= ot - * use an authority component. - */ - if ((ref->authority !=3D NULL) || (ref->server !=3D NULL)) { - if (ref->authority !=3D NULL) { - res->authority =3D g_strdup(ref->authority); - } else { - res->server =3D g_strdup(ref->server); - res->user =3D g_strdup(ref->user); - res->port =3D ref->port; - } - res->path =3D g_strdup(ref->path); - goto step_7; - } - if (bas->authority !=3D NULL) { - res->authority =3D g_strdup(bas->authority); - } else if (bas->server !=3D NULL) { - res->server =3D g_strdup(bas->server); - res->user =3D g_strdup(bas->user); - res->port =3D bas->port; - } - - /* - * 5) If the path component begins with a slash character ("/"), then - * the reference is an absolute-path and we skip to step 7. - */ - if ((ref->path !=3D NULL) && (ref->path[0] =3D=3D '/')) { - res->path =3D g_strdup(ref->path); - goto step_7; - } - - /* - * 6) If this step is reached, then we are resolving a relative-path - * reference. The relative path needs to be merged with the base - * URI's path. Although there are many ways to do this, we will - * describe a simple method using a separate string buffer. - * - * Allocate a buffer large enough for the result string. - */ - len =3D 2; /* extra / and 0 */ - if (ref->path !=3D NULL) { - len +=3D strlen(ref->path); - } - if (bas->path !=3D NULL) { - len +=3D strlen(bas->path); - } - res->path =3D g_malloc(len); - res->path[0] =3D 0; - - /* - * a) All but the last segment of the base URI's path component is - * copied to the buffer. In other words, any characters after the - * last (right-most) slash character, if any, are excluded. - */ - cur =3D 0; - out =3D 0; - if (bas->path !=3D NULL) { - while (bas->path[cur] !=3D 0) { - while ((bas->path[cur] !=3D 0) && (bas->path[cur] !=3D '/')) { - cur++; - } - if (bas->path[cur] =3D=3D 0) { - break; - } - - cur++; - while (out < cur) { - res->path[out] =3D bas->path[out]; - out++; - } - } - } - res->path[out] =3D 0; - - /* - * b) The reference's path component is appended to the buffer - * string. - */ - if (ref->path !=3D NULL && ref->path[0] !=3D 0) { - indx =3D 0; - /* - * Ensure the path includes a '/' - */ - if ((out =3D=3D 0) && (bas->server !=3D NULL)) { - res->path[out++] =3D '/'; - } - while (ref->path[indx] !=3D 0) { - res->path[out++] =3D ref->path[indx++]; - } - } - res->path[out] =3D 0; - - /* - * Steps c) to h) are really path normalization steps - */ - normalize_uri_path(res->path); - -step_7: - - /* - * 7) The resulting URI components, including any inherited from the - * base URI, are recombined to give the absolute form of the URI - * reference. - */ - val =3D uri_to_string(res); - -done: - uri_free(ref); - uri_free(bas); - uri_free(res); - return val; -} - -/** - * uri_resolve_relative: - * @URI: the URI reference under consideration - * @base: the base value - * - * Expresses the URI of the reference in terms relative to the - * base. Some examples of this operation include: - * base =3D "http://site1.com/docs/book1.html" - * URI input URI returned - * docs/pic1.gif pic1.gif - * docs/img/pic1.gif img/pic1.gif - * img/pic1.gif ../img/pic1.gif - * http://site1.com/docs/pic1.gif pic1.gif - * http://site2.com/docs/pic1.gif http://site2.com/docs/pic1.gif - * - * base =3D "docs/book1.html" - * URI input URI returned - * docs/pic1.gif pic1.gif - * docs/img/pic1.gif img/pic1.gif - * img/pic1.gif ../img/pic1.gif - * http://site1.com/docs/pic1.gif http://site1.com/docs/pic1.gif - * - * - * Note: if the URI reference is really weird or complicated, it may be - * worthwhile to first convert it into a "nice" one by calling - * uri_resolve (using 'base') before calling this routine, - * since this routine (for reasonable efficiency) assumes URI has - * already been through some validation. - * - * Returns a new URI string (to be freed by the caller) or NULL in case - * error. - */ -char *uri_resolve_relative(const char *uri, const char *base) -{ - char *val =3D NULL; - int ret; - int ix; - int pos =3D 0; - int nbslash =3D 0; - int len; - URI *ref =3D NULL; - URI *bas =3D NULL; - char *bptr, *uptr, *vptr; - int remove_path =3D 0; - - if ((uri =3D=3D NULL) || (*uri =3D=3D 0)) { - return NULL; - } - - /* - * First parse URI into a standard form - */ - ref =3D uri_new(); - /* If URI not already in "relative" form */ - if (uri[0] !=3D '.') { - ret =3D uri_parse_into(ref, uri); - if (ret !=3D 0) { - goto done; /* Error in URI, return NULL */ - } - } else { - ref->path =3D g_strdup(uri); - } - - /* - * Next parse base into the same standard form - */ - if ((base =3D=3D NULL) || (*base =3D=3D 0)) { - val =3D g_strdup(uri); - goto done; - } - bas =3D uri_new(); - if (base[0] !=3D '.') { - ret =3D uri_parse_into(bas, base); - if (ret !=3D 0) { - goto done; /* Error in base, return NULL */ - } - } else { - bas->path =3D g_strdup(base); - } - - /* - * If the scheme / server on the URI differs from the base, - * just return the URI - */ - if ((ref->scheme !=3D NULL) && - ((bas->scheme =3D=3D NULL) || (strcmp(bas->scheme, ref->scheme)) || - (strcmp(bas->server, ref->server)))) { - val =3D g_strdup(uri); - goto done; - } - if (bas->path =3D=3D ref->path || - (bas->path && ref->path && !strcmp(bas->path, ref->path))) { - val =3D g_strdup(""); - goto done; - } - if (bas->path =3D=3D NULL) { - val =3D g_strdup(ref->path); - goto done; - } - if (ref->path =3D=3D NULL) { - ref->path =3D (char *)"/"; - remove_path =3D 1; - } - - /* - * At this point (at last!) we can compare the two paths - * - * First we take care of the special case where either of the - * two path components may be missing (bug 316224) - */ - if (bas->path =3D=3D NULL) { - if (ref->path !=3D NULL) { - uptr =3D ref->path; - if (*uptr =3D=3D '/') { - uptr++; - } - /* exception characters from uri_to_string */ - val =3D uri_string_escape(uptr, "/;&=3D+$,"); - } - goto done; - } - bptr =3D bas->path; - if (ref->path =3D=3D NULL) { - for (ix =3D 0; bptr[ix] !=3D 0; ix++) { - if (bptr[ix] =3D=3D '/') { - nbslash++; - } - } - uptr =3D NULL; - len =3D 1; /* this is for a string terminator only */ - } else { - /* - * Next we compare the two strings and find where they first differ - */ - if ((ref->path[pos] =3D=3D '.') && (ref->path[pos + 1] =3D=3D '/')= ) { - pos +=3D 2; - } - if ((*bptr =3D=3D '.') && (bptr[1] =3D=3D '/')) { - bptr +=3D 2; - } else if ((*bptr =3D=3D '/') && (ref->path[pos] !=3D '/')) { - bptr++; - } - while ((bptr[pos] =3D=3D ref->path[pos]) && (bptr[pos] !=3D 0)) { - pos++; - } - - if (bptr[pos] =3D=3D ref->path[pos]) { - val =3D g_strdup(""); - goto done; /* (I can't imagine why anyone would do this) */ - } - - /* - * In URI, "back up" to the last '/' encountered. This will be the - * beginning of the "unique" suffix of URI - */ - ix =3D pos; - if ((ref->path[ix] =3D=3D '/') && (ix > 0)) { - ix--; - } else if ((ref->path[ix] =3D=3D 0) && (ix > 1) - && (ref->path[ix - 1] =3D=3D '/')) { - ix -=3D 2; - } - for (; ix > 0; ix--) { - if (ref->path[ix] =3D=3D '/') { - break; - } - } - if (ix =3D=3D 0) { - uptr =3D ref->path; - } else { - ix++; - uptr =3D &ref->path[ix]; - } - - /* - * In base, count the number of '/' from the differing point - */ - if (bptr[pos] !=3D ref->path[pos]) { /* check for trivial URI =3D= =3D base */ - for (; bptr[ix] !=3D 0; ix++) { - if (bptr[ix] =3D=3D '/') { - nbslash++; - } - } - } - len =3D strlen(uptr) + 1; - } - - if (nbslash =3D=3D 0) { - if (uptr !=3D NULL) { - /* exception characters from uri_to_string */ - val =3D uri_string_escape(uptr, "/;&=3D+$,"); - } - goto done; - } - - /* - * Allocate just enough space for the returned string - - * length of the remainder of the URI, plus enough space - * for the "../" groups, plus one for the terminator - */ - val =3D g_malloc(len + 3 * nbslash); - vptr =3D val; - /* - * Put in as many "../" as needed - */ - for (; nbslash > 0; nbslash--) { - *vptr++ =3D '.'; - *vptr++ =3D '.'; - *vptr++ =3D '/'; - } - /* - * Finish up with the end of the URI - */ - if (uptr !=3D NULL) { - if ((vptr > val) && (len > 0) && (uptr[0] =3D=3D '/') && - (vptr[-1] =3D=3D '/')) { - memcpy(vptr, uptr + 1, len - 1); - vptr[len - 2] =3D 0; - } else { - memcpy(vptr, uptr, len); - vptr[len - 1] =3D 0; - } - } else { - vptr[len - 1] =3D 0; - } - - /* escape the freshly-built path */ - vptr =3D val; - /* exception characters from uri_to_string */ - val =3D uri_string_escape(vptr, "/;&=3D+$,"); - g_free(vptr); - -done: - /* - * Free the working variables - */ - if (remove_path !=3D 0) { - ref->path =3D NULL; - } - uri_free(ref); - uri_free(bas); - - return val; -} - /* * Utility functions to help parse and assemble query strings. */ --=20 2.43.0 From nobody Tue Nov 26 16:40:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1706093036; cv=none; d=zohomail.com; s=zohoarc; b=Ig45Tbdjf8WoyXQlfh8h9pfpZONxqy2iGmLyJLdXkGul3Kx6NhZIB0bT9i7nqIwknZAhFkFb3EG7Ph54kW1BSnuzsj8h6q4mYvrTMO/CFzozI05VjMcSqrFkNKv8CxkGqWRlp4vGB5ekik3ixv6aHuY3dHpDY2be1PwBVYvtqEw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1706093036; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=vcl72f/E7hbNeP2SVabcPJdBfI6DFYoL5hfbTr8OIhY=; b=mluyjRzreQwfwOMKdRjX0Y7y87ZdXJQ9jetFvB5/lwEmQ0mM/iEpMH/vIbEGnjypVtb3M2daB+tOUhgC0aE/O4vrSdvF3Pq8GaM+rIfeD++L4LxRSFIE117brThuxn5x/gKoBG4v3gOVuRr1OBduA1K+6H7pgL5F6R31JfUhhbE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1706093036168638.1843293787736; Wed, 24 Jan 2024 02:43:56 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rSaiZ-0008KP-7Y; Wed, 24 Jan 2024 05:42:51 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rSaiX-0008HT-NU for qemu-devel@nongnu.org; Wed, 24 Jan 2024 05:42:49 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rSaiW-0008Fm-5W for qemu-devel@nongnu.org; Wed, 24 Jan 2024 05:42:49 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-433-gxQof-vONlCY9BDTsUoVmA-1; Wed, 24 Jan 2024 05:42:43 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id BC2461013664; Wed, 24 Jan 2024 10:42:42 +0000 (UTC) Received: from thuth-p1g4.redhat.com (unknown [10.39.194.115]) by smtp.corp.redhat.com (Postfix) with ESMTP id A569751D5; Wed, 24 Jan 2024 10:42:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1706092966; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=vcl72f/E7hbNeP2SVabcPJdBfI6DFYoL5hfbTr8OIhY=; b=Lbp1EnOh2md9RpEpWa630LPn21RfRXEA/9t9NxGeckQPOe+GjkFT2sGQxYtuDsuvWToV4G a0C3yp7k4e0Ne8orsY5oVaYoJ03DWYrKhGPJslOHLKrfAPEtebZwP5wDBw5/n9AdlLPqcx hGV5BOsU2/mNd2u7uK8XjlUL9mKkRR8= X-MC-Unique: gxQof-vONlCY9BDTsUoVmA-1 From: Thomas Huth To: qemu-devel@nongnu.org Cc: Peter Maydell Subject: [PULL 6/7] util/uri: Remove the uri_string_escape() function Date: Wed, 24 Jan 2024 11:42:30 +0100 Message-ID: <20240124104231.603418-7-thuth@redhat.com> In-Reply-To: <20240124104231.603418-1-thuth@redhat.com> References: <20240124104231.603418-1-thuth@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.5 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=thuth@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -33 X-Spam_score: -3.4 X-Spam_bar: --- X-Spam_report: (-3.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1.327, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1706093036648100005 Now that uri_resolve_relative() has been removed, this function is not used in QEMU anymore - and if somebody needs this functionality, they can simply use g_uri_escape_string() from the glib instead. Reviewed-by: Stefan Weil Reviewed-by: "Daniel P. Berrang=C3=A9" Message-ID: <20240123182247.432642-4-thuth@redhat.com> Reviewed-by: Richard Henderson Signed-off-by: Thomas Huth --- include/qemu/uri.h | 1 - util/uri.c | 70 ---------------------------------------------- 2 files changed, 71 deletions(-) diff --git a/include/qemu/uri.h b/include/qemu/uri.h index 899ce852f5..255e61f452 100644 --- a/include/qemu/uri.h +++ b/include/qemu/uri.h @@ -76,7 +76,6 @@ URI *uri_parse(const char *str); URI *uri_parse_raw(const char *str, int raw); int uri_parse_into(URI *uri, const char *str); char *uri_to_string(URI *uri); -char *uri_string_escape(const char *str, const char *list); void uri_free(URI *uri); =20 /* Single web service query parameter 'name=3Dvalue'. */ diff --git a/util/uri.c b/util/uri.c index 1891ca6fb3..350835b03f 100644 --- a/util/uri.c +++ b/util/uri.c @@ -1349,76 +1349,6 @@ void uri_free(URI *uri) g_free(uri); } =20 -/************************************************************************ - * * - * Helper functions * - * * - ************************************************************************/ - -/** - * uri_string_escape: - * @str: string to escape - * @list: exception list string of chars not to escape - * - * This routine escapes a string to hex, ignoring reserved characters (a-z) - * and the characters in the exception list. - * - * Returns a new escaped string or NULL in case of error. - */ -char *uri_string_escape(const char *str, const char *list) -{ - char *ret, ch; - char *temp; - const char *in; - int len, out; - - if (str =3D=3D NULL) { - return NULL; - } - if (str[0] =3D=3D 0) { - return g_strdup(str); - } - len =3D strlen(str); - if (!(len > 0)) { - return NULL; - } - - len +=3D 20; - ret =3D g_malloc(len); - in =3D str; - out =3D 0; - while (*in !=3D 0) { - if (len - out <=3D 3) { - temp =3D realloc2n(ret, &len); - ret =3D temp; - } - - ch =3D *in; - - if ((ch !=3D '@') && (!IS_UNRESERVED(ch)) && (!strchr(list, ch))) { - unsigned char val; - ret[out++] =3D '%'; - val =3D ch >> 4; - if (val <=3D 9) { - ret[out++] =3D '0' + val; - } else { - ret[out++] =3D 'A' + val - 0xA; - } - val =3D ch & 0xF; - if (val <=3D 9) { - ret[out++] =3D '0' + val; - } else { - ret[out++] =3D 'A' + val - 0xA; - } - in++; - } else { - ret[out++] =3D *in++; - } - } - ret[out] =3D 0; - return ret; -} - /************************************************************************ * * * Public functions * --=20 2.43.0 From nobody Tue Nov 26 16:40:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1706093006; cv=none; d=zohomail.com; s=zohoarc; b=Wti3b23KGO2Wt0inUJx+ZXehFZ2dedtlDuM9j48uO1qMO7+8ApBFmqSrXqeG9TmhFMkKt7ogtwNWoiVSjvyvRITH1ddIi1+zTufg2hQKZFaBpEW5Jguz3B3rMk8R4wDH+bOlywAy/S7RIWo6GhxJDSH2xinwzKfwaXs8LMLa/OM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1706093006; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=tfVQuqKtVMuxIraBBaWC+0YKkoFFwfTlKdUhFdFqzaQ=; b=Q4ksfY/sIu1HvZ1prvYhoA+IioHeDCc7oXOdVxzlmf4wJOx12Z8GMwkfzfMLEw/HgGeVzBjVR8tV80nnwS3KL/AdgXaIFh/jeF+A6nd06CPM5y058RXZd3XMzhcJpg5wrVydaY/O7Pm6LN4lR1AYYbUq3fzrBsHuYLq4Q2iYMVM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1706093006517615.802949961842; Wed, 24 Jan 2024 02:43:26 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rSaib-0008Lq-W7; Wed, 24 Jan 2024 05:42:54 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rSaia-0008Ld-CL for qemu-devel@nongnu.org; Wed, 24 Jan 2024 05:42:52 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rSaiY-0008GJ-W7 for qemu-devel@nongnu.org; Wed, 24 Jan 2024 05:42:52 -0500 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-213-enKRNHg6NiO9aRVIqEAiqg-1; Wed, 24 Jan 2024 05:42:45 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 0D10C83BA89; Wed, 24 Jan 2024 10:42:45 +0000 (UTC) Received: from thuth-p1g4.redhat.com (unknown [10.39.194.115]) by smtp.corp.redhat.com (Postfix) with ESMTP id 398A251D5; Wed, 24 Jan 2024 10:42:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1706092970; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=tfVQuqKtVMuxIraBBaWC+0YKkoFFwfTlKdUhFdFqzaQ=; b=JC8mCcdET2VT5Y2qG6JnWIz/v3Ax3M+aEVUu8zbah/PRI5a2ll+bsneUp3JUmfiQ3EF96K WA4IiXA6XWm0hmre0rL8Y/EB9z+CxaP5Nzw3EMkSCsNrzt59Uc5FDVCJTDQJXJJCMvI/jB 6aTsh8kJnoIbM7jujyiR/071PvQTUEI= X-MC-Unique: enKRNHg6NiO9aRVIqEAiqg-1 From: Thomas Huth To: qemu-devel@nongnu.org Cc: Peter Maydell Subject: [PULL 7/7] util/uri: Remove unused macros ISA_RESERVED() and ISA_GEN_DELIM() Date: Wed, 24 Jan 2024 11:42:31 +0100 Message-ID: <20240124104231.603418-8-thuth@redhat.com> In-Reply-To: <20240124104231.603418-1-thuth@redhat.com> References: <20240124104231.603418-1-thuth@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.5 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=thuth@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -33 X-Spam_score: -3.4 X-Spam_bar: --- X-Spam_report: (-3.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1.327, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1706093008667100007 They are not used anywhere, so there's no need to keep them around. Reviewed-by: Stefan Weil Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: "Daniel P. Berrang=C3=A9" Message-ID: <20240123182247.432642-5-thuth@redhat.com> Reviewed-by: Richard Henderson Signed-off-by: Thomas Huth --- util/uri.c | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/util/uri.c b/util/uri.c index 350835b03f..573174bf47 100644 --- a/util/uri.c +++ b/util/uri.c @@ -163,19 +163,6 @@ static void uri_clean(URI *uri); ((*(p) =3D=3D '+')) || ((*(p) =3D=3D ',')) || ((*(p) =3D=3D ';')) || = \ ((*(p) =3D=3D '=3D')) || ((*(p) =3D=3D '\''))) =20 -/* - * gen-delims =3D ":" / "/" / "?" / "#" / "[" / "]" / "@" - */ -#define ISA_GEN_DELIM(p) = \ - (((*(p) =3D=3D ':')) || ((*(p) =3D=3D '/')) || ((*(p) =3D=3D '?')) || = \ - ((*(p) =3D=3D '#')) || ((*(p) =3D=3D '[')) || ((*(p) =3D=3D ']')) || = \ - ((*(p) =3D=3D '@'))) - -/* - * reserved =3D gen-delims / sub-delims - */ -#define ISA_RESERVED(p) (ISA_GEN_DELIM(p) || (ISA_SUB_DELIM(p))) - /* * unreserved =3D ALPHA / DIGIT / "-" / "." / "_" / "~" */ --=20 2.43.0