From patchwork Tue May 18 14:01:33 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Julien Grall X-Patchwork-Id: 12264861 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4ED66C43462 for ; Tue, 18 May 2021 14:01:54 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1A71D6054E for ; Tue, 18 May 2021 14:01:54 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1A71D6054E Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=xen.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from list by lists.xenproject.org with outflank-mailman.129236.242610 (Exim 4.92) (envelope-from ) id 1lj0I2-0007LK-AN; Tue, 18 May 2021 14:01:42 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 129236.242610; Tue, 18 May 2021 14:01:42 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lj0I2-0007KK-3A; Tue, 18 May 2021 14:01:42 +0000 Received: by outflank-mailman (input) for mailman id 129236; Tue, 18 May 2021 14:01:41 +0000 Received: from mail.xenproject.org ([104.130.215.37]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lj0I1-0007I7-8f for xen-devel@lists.xenproject.org; Tue, 18 May 2021 14:01:41 +0000 Received: from xenbits.xenproject.org ([104.239.192.120]) by mail.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lj0I0-000483-2G; Tue, 18 May 2021 14:01:40 +0000 Received: from 54-240-197-235.amazon.com ([54.240.197.235] helo=ufe34d9ed68d054.ant.amazon.com) by xenbits.xenproject.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lj0Hz-0001pY-Pu; Tue, 18 May 2021 14:01:40 +0000 X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org; s=20200302mail; h=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From; bh=QC/l4qwnhGeUAmcofs7Krcq3dxsEAeNaOUqTwh1uBys=; b=xTlMMwJv2eAQQHzor73HAEhJE e73sEpK2PR8kCjnsScNjrzCnfXBpCMxPj39WBkEmGMw4PNRO4POW075j0ld4TIvB6BkQywCjH6+4h 4ctfMflIa3Fsd2EfuAB5EXW7vyzMQmNFy0KlKUM1OQSK/Zk77V6Z1cd9IK1y0xmHMlwZA=; From: Julien Grall To: xen-devel@lists.xenproject.org Cc: julien@xen.org, Julien Grall , Andrew Cooper , George Dunlap , Ian Jackson , Jan Beulich , Stefano Stabellini , Wei Liu Subject: [PATCH v2 1/2] xen/char: console: Use const whenever we point to literal strings Date: Tue, 18 May 2021 15:01:33 +0100 Message-Id: <20210518140134.31541-2-julien@xen.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210518140134.31541-1-julien@xen.org> References: <20210518140134.31541-1-julien@xen.org> From: Julien Grall Literal strings are not meant to be modified. So we should use const char * rather than char * when we want to store a pointer to them. The array should also not be modified at all and is only used by xenlog_update_val(). So take the opportunity to add an extra const and move the definition in the function. Signed-off-by: Julien Grall Reviewed-by: Luca Fancellu Reviewed-by: Jan Beulich --- Changes in v2: - The array content should never be modified - Move lvl2opt in xenlog_update_val() --- xen/drivers/char/console.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c index 23583751709c..7d0a603d0311 100644 --- a/xen/drivers/char/console.c +++ b/xen/drivers/char/console.c @@ -168,10 +168,11 @@ static int parse_guest_loglvl(const char *s); static char xenlog_val[LOGLVL_VAL_SZ]; static char xenlog_guest_val[LOGLVL_VAL_SZ]; -static char *lvl2opt[] = { "none", "error", "warning", "info", "all" }; - static void xenlog_update_val(int lower, int upper, char *val) { + static const char * const lvl2opt[] = + { "none", "error", "warning", "info", "all" }; + snprintf(val, LOGLVL_VAL_SZ, "%s/%s", lvl2opt[lower], lvl2opt[upper]); } @@ -262,7 +263,7 @@ static int parse_guest_loglvl(const char *s) return ret; } -static char *loglvl_str(int lvl) +static const char *loglvl_str(int lvl) { switch ( lvl ) { From patchwork Tue May 18 14:01:34 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Julien Grall X-Patchwork-Id: 12264859 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-18.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1999EC433B4 for ; Tue, 18 May 2021 14:01:53 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D27026054E for ; Tue, 18 May 2021 14:01:52 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D27026054E Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=xen.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from list by lists.xenproject.org with outflank-mailman.129237.242627 (Exim 4.92) (envelope-from ) id 1lj0I3-0007oa-F1; Tue, 18 May 2021 14:01:43 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 129237.242627; Tue, 18 May 2021 14:01:43 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lj0I3-0007nk-BW; Tue, 18 May 2021 14:01:43 +0000 Received: by outflank-mailman (input) for mailman id 129237; Tue, 18 May 2021 14:01:42 +0000 Received: from mail.xenproject.org ([104.130.215.37]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lj0I2-0007KH-29 for xen-devel@lists.xenproject.org; Tue, 18 May 2021 14:01:42 +0000 Received: from xenbits.xenproject.org ([104.239.192.120]) by mail.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lj0I1-00048D-3F; Tue, 18 May 2021 14:01:41 +0000 Received: from 54-240-197-235.amazon.com ([54.240.197.235] helo=ufe34d9ed68d054.ant.amazon.com) by xenbits.xenproject.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lj0I0-0001pY-R3; Tue, 18 May 2021 14:01:41 +0000 X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org; s=20200302mail; h=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From; bh=ZHxYmRfDdLu4FrS7B9sF2TjHiGx4cl5soDoTcAWKfvw=; b=6zfceufaUl++gBaP0pT8q99oL HKNEExzOPGfYbj91CgLPMOapbAn4F6kieIKThFiya5uepImEnP0x90GyNZDYcUCTJgU5nsWJT67Ad iMja/URFk7cbgb18rQOUSYTB4kuCHtbmgwwsZDVfW7aHAGVHdO5FH8PzQx6PezUYdJBoo=; From: Julien Grall To: xen-devel@lists.xenproject.org Cc: julien@xen.org, Julien Grall , Ian Jackson , Wei Liu Subject: [PATCH v2 2/2] tools/console: Use const whenever we point to literal strings Date: Tue, 18 May 2021 15:01:34 +0100 Message-Id: <20210518140134.31541-3-julien@xen.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210518140134.31541-1-julien@xen.org> References: <20210518140134.31541-1-julien@xen.org> From: Julien Grall Literal strings are not meant to be modified. So we should use const char * rather than char * when we want to store a pointer to them. Take the opportunity to remove the cast (char *) in console_init(). It is unnecessary and will remove the const. Signed-off-by: Julien Grall Acked-by: Wei Liu Reviewed-by: Anthony PERARD --- Changes in v2: - Remove the cast (char *) in console_init() - Add Wei's acked-by --- tools/console/client/main.c | 4 ++-- tools/console/daemon/io.c | 15 ++++++++------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/tools/console/client/main.c b/tools/console/client/main.c index 088be28dff02..80157be42144 100644 --- a/tools/console/client/main.c +++ b/tools/console/client/main.c @@ -325,7 +325,7 @@ int main(int argc, char **argv) { struct termios attr; int domid; - char *sopt = "hn:"; + const char *sopt = "hn:"; int ch; unsigned int num = 0; int opt_ind=0; @@ -345,7 +345,7 @@ int main(int argc, char **argv) char *end; console_type type = CONSOLE_INVAL; bool interactive = 0; - char *console_names = "serial, pv, vuart"; + const char *console_names = "serial, pv, vuart"; while((ch = getopt_long(argc, argv, sopt, lopt, &opt_ind)) != -1) { switch(ch) { diff --git a/tools/console/daemon/io.c b/tools/console/daemon/io.c index 4af27ffc5d02..200b575d76f8 100644 --- a/tools/console/daemon/io.c +++ b/tools/console/daemon/io.c @@ -87,14 +87,14 @@ struct buffer { }; struct console { - char *ttyname; + const char *ttyname; int master_fd; int master_pollfd_idx; int slave_fd; int log_fd; struct buffer buffer; char *xspath; - char *log_suffix; + const char *log_suffix; int ring_ref; xenevtchn_handle *xce_handle; int xce_pollfd_idx; @@ -109,9 +109,9 @@ struct console { }; struct console_type { - char *xsname; - char *ttyname; - char *log_suffix; + const char *xsname; + const char *ttyname; + const char *log_suffix; bool optional; bool use_gnttab; }; @@ -813,7 +813,8 @@ static int console_init(struct console *con, struct domain *dom, void **data) int err = -1; struct timespec ts; struct console_type **con_type = (struct console_type **)data; - char *xsname, *xspath; + const char *xsname; + char *xspath; if (clock_gettime(CLOCK_MONOTONIC, &ts) < 0) { dolog(LOG_ERR, "Cannot get time of day %s:%s:L%d", @@ -835,7 +836,7 @@ static int console_init(struct console *con, struct domain *dom, void **data) con->log_suffix = (*con_type)->log_suffix; con->optional = (*con_type)->optional; con->use_gnttab = (*con_type)->use_gnttab; - xsname = (char *)(*con_type)->xsname; + xsname = (*con_type)->xsname; xspath = xs_get_domain_path(xs, dom->domid); s = realloc(xspath, strlen(xspath) + strlen(xsname) + 1);