aboutsummaryrefslogtreecommitdiffstats
path: root/signal.c
diff options
context:
space:
mode:
authorYusuke Endoh <mame@ruby-lang.org>2019-08-01 14:25:15 +0900
committerYusuke Endoh <mame@ruby-lang.org>2019-08-01 14:25:15 +0900
commitf45bb760fb0a751915a9eac5f7dc4075e88e0cfc (patch)
treeee373947d7e0fa6d7f626cdfb50c0ed0b0027fb4 /signal.c
parent746386710646f93a5b9e0c408b00408041645091 (diff)
downloadruby-f45bb760fb0a751915a9eac5f7dc4075e88e0cfc.tar.gz
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
Diffstat (limited to 'signal.c')
-rw-r--r--signal.c6
1 files changed, 3 insertions, 3 deletions
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) {