Re: [PATCH v2 1/2] xen/char: console: Use const whenever we point to literal strings
On 18.05.2021 16:01, 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. > > 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: Jan Beulich
Re: [PATCH v2 1/2] xen/char: console: Use const whenever we point to literal strings
> On 18 May 2021, at 15:01, 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. > > 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 > > --- >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 ) > { > -- > 2.17.1 > Hi Julien, Seems good to me and very sensible. Reviewed-by: Luca Fancellu Cheers, Luca
[PATCH v2 1/2] xen/char: 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. 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 --- 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 ) { -- 2.17.1