[前][次][番号順一覧][スレッド一覧]

ruby-changes:56741

From: Yusuke <ko1@a...>
Date: Thu, 1 Aug 2019 14:27:21 +0900 (JST)
Subject: [ruby-changes:56741] Yusuke Endoh: f45bb760fb (master): signal.c: make signame_prefix a nul-terminated string

https://git.ruby-lang.org/ruby.git/commit/?id=f45bb760fb

From f45bb760fb0a751915a9eac5f7dc4075e88e0cfc Mon Sep 17 00:00:00 2001
From: Yusuke Endoh <mame@r...>
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

diff --git a/signal.c b/signal.c
index 9047811..ee707ab 100644
--- a/signal.c
+++ b/signal.c
@@ -197,8 +197,8 @@ static const struct signals { https://github.com/ruby/ruby/blob/trunk/signal.c#L197
 #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) https://github.com/ruby/ruby/blob/trunk/signal.c#L236
 	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 v0.10.2


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]