Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

* strftime.c (NEEDS): avoid SEGV due to integer overflow in sparc-sol…

…aris2.10

  and i686-linux.  fix [Bug #4456] [ruby-dev:43284]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32757 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
  • Loading branch information...
commit cf310f97416686e93841e202462c8bb60fb332e6 1 parent 3761e00
ngoto authored
Showing with 6 additions and 1 deletion.
  1. +5 −0 ChangeLog
  2. +1 −1  strftime.c
View
5 ChangeLog
@@ -1,3 +1,8 @@
+Sat Jul 30 22:35:50 2011 Naohisa Goto <ngotogenome@gmail.com>
+
+ * strftime.c (NEEDS): avoid SEGV due to integer overflow in
+ sparc-solaris2.10 and i686-linux. fix [Bug #4456] [ruby-dev:43284]
+
Sat Jul 30 17:26:26 2011 Masaki Suketa <masaki.suketa@nifty.ne.jp>
* test/win32ole/test_win32ole_variant.rb: use skip method to skip the test.
View
2  strftime.c
@@ -210,7 +210,7 @@ rb_strftime_with_timespec(char *s, size_t maxsize, const char *format, const str
if (precision > 0 || flags & (BIT_OF(LOCALE_E)|BIT_OF(LOCALE_O))) \
goto unknown; \
} while (0)
-#define NEEDS(n) do if (s + (n) >= endp - 1) goto err; while (0)
+#define NEEDS(n) do if (s >= endp || (n) >= endp - s - 1) goto err; while (0)
#define FILL_PADDING(i) do { \
if (!(flags & BIT_OF(LEFT)) && precision > (i)) { \
NEEDS(precision); \
Please sign in to comment.
Something went wrong with that request. Please try again.