Re: [PATCH 09/14] tools/console: Use const whenever we point to literal strings
Hi Anthony, On 11/05/2021 16:18, Anthony PERARD wrote: On Mon, Apr 05, 2021 at 04:57:08PM +0100, Julien Grall wrote: 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. Signed-off-by: Julien Grall --- diff --git a/tools/console/daemon/io.c b/tools/console/daemon/io.c index 4af27ffc5d02..6a8a94e31b65 100644 --- a/tools/console/daemon/io.c +++ b/tools/console/daemon/io.c @@ -109,9 +109,9 @@ struct console { }; struct console_type { - char *xsname; - char *ttyname; - char *log_suffix; + const char *xsname; I think that const of `xsname` is lost in console_init() in the same file. We have: static int console_init(.. ) { struct console_type **con_type = (struct console_type **)data; char *xsname, *xspath; xsname = (char *)(*con_type)->xsname; } So constify "xsname" in console_init() should be part of the patch, I think. Good point. I am not entirely sure why the cast has been added because the field has always been a char *. Anyway, I will remove it. Cheers, -- Julien Grall
Re: [PATCH 09/14] tools/console: Use const whenever we point to literal strings
On Mon, Apr 05, 2021 at 04:57:08PM +0100, Julien Grall wrote: > 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. > > Signed-off-by: Julien Grall > --- > diff --git a/tools/console/daemon/io.c b/tools/console/daemon/io.c > index 4af27ffc5d02..6a8a94e31b65 100644 > --- a/tools/console/daemon/io.c > +++ b/tools/console/daemon/io.c > @@ -109,9 +109,9 @@ struct console { > }; > > struct console_type { > - char *xsname; > - char *ttyname; > - char *log_suffix; > + const char *xsname; I think that const of `xsname` is lost in console_init() in the same file. We have: static int console_init(.. ) { struct console_type **con_type = (struct console_type **)data; char *xsname, *xspath; xsname = (char *)(*con_type)->xsname; } So constify "xsname" in console_init() should be part of the patch, I think. Thanks, -- Anthony PERARD
[PATCH 09/14] tools/console: Use const whenever we point to literal strings
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. Signed-off-by: Julien Grall --- tools/console/client/main.c | 4 ++-- tools/console/daemon/io.c | 10 +- 2 files changed, 7 insertions(+), 7 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, _ind)) != -1) { switch(ch) { diff --git a/tools/console/daemon/io.c b/tools/console/daemon/io.c index 4af27ffc5d02..6a8a94e31b65 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; }; -- 2.17.1