From nobody Tue Feb 10 03:38:23 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1615028183; cv=none; d=zohomail.com; s=zohoarc; b=mdaYfsAfOnq9rEU1eLYIo/N34favHCbKEVmzh1i65Dc75qM0eIT9LF55iqRmtWiowF5W5IYcsbxQTrF+RS+9tM3p0HpQeYfU9UpKVSX8QtqnwdqLrA6gpUxRg+2qreTPHSYUmoPs0x4CCTTPyncHKx1BhnVLYudK2tcuoYr11dc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615028183; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ynw4rHhm1APNekgRpZNjLyKWr2jA0nlwh2JMlTwzrKk=; b=j16PIn19G0JTV1WK5n/nbMJ4JZqoIH35fqH2xmK2GDUJBLpLHx1HQqWTZcpHLYzzq8dCdYAM5RamSCTiBspVR4CXJNvKHFil1KJ2/fI6suFFCM6OUMnf8c77FjLN8IM7PSwyhxoPVP4jYGLL6l8GJud7LzyF3yv5q/6raadpdNs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; 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=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1615028183643414.21300770997675; Sat, 6 Mar 2021 02:56:23 -0800 (PST) Received: from localhost ([::1]:38972 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lIUbd-0007fM-GE for importer@patchew.org; Sat, 06 Mar 2021 05:56:22 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:44322) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lIUZo-0005mb-I2 for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:28 -0500 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]:35839) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lIUZn-000856-1J for qemu-devel@nongnu.org; Sat, 06 Mar 2021 05:54:28 -0500 Received: by mail-wm1-x335.google.com with SMTP id c76-20020a1c9a4f0000b029010c94499aedso847105wme.0 for ; Sat, 06 Mar 2021 02:54:26 -0800 (PST) Received: from avogadro.redhat.com ([93.56.170.5]) by smtp.gmail.com with ESMTPSA id i26sm9326472wmb.18.2021.03.06.02.54.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Mar 2021 02:54:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ynw4rHhm1APNekgRpZNjLyKWr2jA0nlwh2JMlTwzrKk=; b=bT4EBgDOYQEG5RsxCMOsv3vvIpJvJUwh5OZk862a0v2C8Cn4LKevMLGC//QD36+tEf xprAm7QJO3zDt8AaEr++3P+nKqiKGIPPZLHDmwAfPzgXBpqJSx970d4oplL1e3eriOxz Ft7452lrEnx0z0fincxlgNSOJ3+BBeqysIN5drsMz+T7xmO41NOgzQ3jB2YswatqasAC PJvv/n9FVfoJ1jHwdZjSwgRutbrcWRdhaWGqlBLtW5sQNGHDVYujVzMotqQ0QFKTuffS WqPcZ673Mqy8ASaNJ/ukxDvubvd68xl4GTVfeGWfCkJHcdVNa4/qmYvpUY5UvaQP/8z4 7Vug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=ynw4rHhm1APNekgRpZNjLyKWr2jA0nlwh2JMlTwzrKk=; b=jrQl341rHtHjR7TjYKW8SO+rdH3MiuOdBDf08JwSnJ7pG21oaciw+XOPI4iKNY95cd pjVl5ZQ1LlKXZ2wYlIkISG0E7RsGJAfH9j1Gigqt0/vT5eVM3yoXQIO/FZLik24UqJ7U QhYhI5Y4Ow0S5cKAuUMhZswn0oRmS1q8y5HmsLhWIKvrtmcEyU/oXGhjDoC4Ndk0m5qr EKngyNVpGhhfokGsYLGQiMJ99O44rdS+4TH/DRzAiEQ0zDZ+UX9R6mpIa/KsGskVsrqp OD9mWS9e99Iy3K0MTjXfe8wsAUGgHby1++I8cvxlH5rUyX83R6+0/INDDmote02Yh2m9 4bag== X-Gm-Message-State: AOAM532o3yNZpdT/Tk6xy5BqpF9IbMPvGzfuvN1YcPxfnHB41jLmP5YM RxLhObvAvwjvEWnxPpfAgbuKJORGWV0= X-Google-Smtp-Source: ABdhPJzIBVSttxX7y6WD0dpsc2mMHAX7jeFRn32m7F1m2C8662pOGRG8mFyRtWoA5uUF0/aiUb+wSA== X-Received: by 2002:a1c:5f89:: with SMTP id t131mr12654201wmb.173.1615028065791; Sat, 06 Mar 2021 02:54:25 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Subject: [PULL 05/23] qom: Check for wellformed id in user_creatable_add_type() Date: Sat, 6 Mar 2021 11:54:01 +0100 Message-Id: <20210306105419.110503-6-pbonzini@redhat.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210306105419.110503-1-pbonzini@redhat.com> References: <20210306105419.110503-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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=2a00:1450:4864:20::335; envelope-from=paolo.bonzini@gmail.com; helo=mail-wm1-x335.google.com X-Spam_score_int: -14 X-Spam_score: -1.5 X-Spam_bar: - X-Spam_report: (-1.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Kevin Wolf Most code paths for creating a user creatable object go through QemuOpts, which ensures that the provided 'id' option is actually a valid identifier. However, there are some code paths that don't go through QemuOpts: qemu-storage-daemon --object (since commit 8db1efd3) and QMP object-add (since it was first introduced in commit cff8b2c6). We need to have the same validity check for those, too. This adds the check and makes it print the same error message as QemuOpts on failure. Signed-off-by: Kevin Wolf Message-Id: <20210302171623.49709-1-kwolf@redhat.com> Signed-off-by: Paolo Bonzini --- qom/object_interfaces.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/qom/object_interfaces.c b/qom/object_interfaces.c index 1e9ad6f08a..7661270b98 100644 --- a/qom/object_interfaces.c +++ b/qom/object_interfaces.c @@ -8,6 +8,7 @@ #include "qapi/qobject-input-visitor.h" #include "qom/object_interfaces.h" #include "qemu/help_option.h" +#include "qemu/id.h" #include "qemu/module.h" #include "qemu/option.h" #include "qapi/opts-visitor.h" @@ -41,11 +42,19 @@ Object *user_creatable_add_type(const char *type, const= char *id, const QDict *qdict, Visitor *v, Error **errp) { + ERRP_GUARD(); Object *obj; ObjectClass *klass; const QDictEntry *e; Error *local_err =3D NULL; =20 + if (id !=3D NULL && !id_wellformed(id)) { + error_setg(errp, QERR_INVALID_PARAMETER_VALUE, "id", "an identifie= r"); + error_append_hint(errp, "Identifiers consist of letters, digits, " + "'-', '.', '_', starting with a letter.\n"); + return NULL; + } + klass =3D object_class_by_name(type); if (!klass) { error_setg(errp, "invalid object type: %s", type); --=20 2.29.2