* ext/socket/ifaddr.c (rsock_getifaddrs): fix possible memory leak.

When a system had no interface, this function used xmalloc for root
  but did not return any reference to it.  This patch fixes it by
  immediately returning an empty array if no interface is found.
  Coverity Scan found this bug.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43121 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
mame 2013-10-02 12:41:28 +00:00
Родитель e7f484d469
Коммит a6ae6a8b17
2 изменённых файлов: 12 добавлений и 0 удалений

Просмотреть файл

@ -1,3 +1,11 @@
Wed Oct 2 21:38:30 2013 Yusuke Endoh <mame@tsg.ne.jp>
* ext/socket/ifaddr.c (rsock_getifaddrs): fix possible memory leak.
When a system had no interface, this function used xmalloc for root
but did not return any reference to it. This patch fixes it by
immediately returning an empty array if no interface is found.
Coverity Scan found this bug.
Wed Oct 2 21:37:04 2013 Yusuke Endoh <mame@tsg.ne.jp>
* random.c (make_seed_value): a local array declaration was accessed

Просмотреть файл

@ -105,6 +105,10 @@ rsock_getifaddrs(void)
if (ret == -1)
rb_sys_fail("getifaddrs");
if (!ifaddrs) {
return rb_ary_new();
}
numifaddrs = 0;
for (ifa = ifaddrs; ifa != NULL; ifa = ifa->ifa_next)
numifaddrs++;