From f45bb760fb0a751915a9eac5f7dc4075e88e0cfc Mon Sep 17 00:00:00 2001 From: Yusuke Endoh Date: Thu, 1 Aug 2019 14:25:15 +0900 Subject: signal.c: make signame_prefix a nul-terminated string gcc 9.1.0 warns this. ``` signal.c:258:46: warning: '%.*s' directive argument is not a nul-terminated string [-Wformat-overflow=] 258 | rb_raise(rb_eArgError, "unsupported signal `%.*s%"PRIsVALUE"'", | ^~~~ 259 | prefix, signame_prefix, vsig); | ~~~~~~~~~~~~~~ signal.c:200:19: note: referenced argument declared here 200 | static const char signame_prefix[3] = "SIG"; | ^~~~~~~~~~~~~~ ``` https://rubyci.org/logs/rubyci.s3.amazonaws.com/ubuntu/ruby-master/log/20190801T033009Z.log.html.gz --- signal.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'signal.c') diff --git a/signal.c b/signal.c index 9047811397..ee707ab547 100644 --- a/signal.c +++ b/signal.c @@ -197,8 +197,8 @@ static const struct signals { #endif }; -static const char signame_prefix[3] = "SIG"; -static const int signame_prefix_len = (int)sizeof(signame_prefix); +static const char signame_prefix[] = "SIG"; +static const int signame_prefix_len = 3; static int signm2signo(VALUE *sig_ptr, int negative, int exit, int *prefix_ptr) @@ -236,7 +236,7 @@ signm2signo(VALUE *sig_ptr, int negative, int exit, int *prefix_ptr) negative = 0; } if (len >= prefix + signame_prefix_len) { - if (memcmp(nm + prefix, signame_prefix, sizeof(signame_prefix)) == 0) + if (memcmp(nm + prefix, signame_prefix, signame_prefix_len) == 0) prefix += signame_prefix_len; } if (len <= (long)prefix) { -- cgit v1.2.1