merges r28457 from trunk into ruby_1_9_2.

--
* thread.c (rb_fd_resize, rb_fd_copy): avoid NULL dereference upon
  failed realloc by using xrealloc instead of not realloc.  a patch
  from Jim Meyering <meyering at redhat.com> in [ruby-core:30920]
  [Bug #3489]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_2@28509 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
yugui 2010-07-01 07:41:55 +00:00
parent 195d3bcc86
commit 83f1241ad5
2 changed files with 9 additions and 2 deletions

View file

@ -1,3 +1,10 @@
Mon Jun 28 21:56:14 2010 Yusuke Endoh <mame@tsg.ne.jp>
* thread.c (rb_fd_resize, rb_fd_copy): avoid NULL dereference upon
failed realloc by using xrealloc instead of not realloc. a patch
from Jim Meyering <meyering at redhat.com> in [ruby-core:30920]
[Bug #3489]
Thu Jul 1 16:26:42 2010 NARUSE, Yui <naruse@ruby-lang.org> Thu Jul 1 16:26:42 2010 NARUSE, Yui <naruse@ruby-lang.org>
* thread_pthread.c (thread_start_func_1): don't call * thread_pthread.c (thread_start_func_1): don't call

View file

@ -2285,7 +2285,7 @@ rb_fd_resize(int n, rb_fdset_t *fds)
if (o < sizeof(fd_set)) o = sizeof(fd_set); if (o < sizeof(fd_set)) o = sizeof(fd_set);
if (m > o) { if (m > o) {
fds->fdset = realloc(fds->fdset, m); fds->fdset = xrealloc(fds->fdset, m);
memset((char *)fds->fdset + o, 0, m - o); memset((char *)fds->fdset + o, 0, m - o);
} }
if (n >= fds->maxfd) fds->maxfd = n + 1; if (n >= fds->maxfd) fds->maxfd = n + 1;
@ -2319,7 +2319,7 @@ rb_fd_copy(rb_fdset_t *dst, const fd_set *src, int max)
if (size < sizeof(fd_set)) size = sizeof(fd_set); if (size < sizeof(fd_set)) size = sizeof(fd_set);
dst->maxfd = max; dst->maxfd = max;
dst->fdset = realloc(dst->fdset, size); dst->fdset = xrealloc(dst->fdset, size);
memcpy(dst->fdset, src, size); memcpy(dst->fdset, src, size);
} }