From 28d67a0bfebaeeb61f436a6d1f38909f823061c7 Mon Sep 17 00:00:00 2001 From: matz Date: Thu, 4 Nov 2004 23:43:40 +0000 Subject: * string.c (str_gsub): should have removed rb_str_unlocktmp(str). [ruby-dev:24708] * ext/socket/socket.c (s_recvfrom): buffer modification check. [ruby-dev:24708] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7208 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/socket/socket.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'ext/socket/socket.c') diff --git a/ext/socket/socket.c b/ext/socket/socket.c index cbd3dd86ce..0e7b539588 100644 --- a/ext/socket/socket.c +++ b/ext/socket/socket.c @@ -476,6 +476,9 @@ s_recvfrom(sock, argc, argv, from) retry: rb_str_locktmp(str); rb_thread_wait_fd(fd); + if (buflen != RSTRING(str)->len) { + rb_raise(rb_eRuntimeError, "buffer modified"); + } TRAP_BEG; slen = recvfrom(fd, RSTRING(str)->ptr, buflen, flags, (struct sockaddr*)buf, &alen); TRAP_END; -- cgit v1.2.3