Browse Source

fix bug #61487 - bad bounds check in grapheme_strpos

pull/25/head
Stanislav Malyshev 14 years ago
parent
commit
cd9cd36d7e
  1. 2
      ext/intl/grapheme/grapheme_util.h
  2. 11
      ext/intl/tests/bug61487.phpt

2
ext/intl/grapheme/grapheme_util.h

@ -54,6 +54,6 @@ UBreakIterator*
grapheme_get_break_iterator(void *stack_buffer, UErrorCode *status TSRMLS_DC );
/* OUTSIDE_STRING: check if (possibly negative) long offset is outside the string with int32_t length */
#define OUTSIDE_STRING(offset, max_len) ( offset < INT32_MIN || offset > INT32_MAX || (offset < 0 ? -offset > (long) max_len : offset >= (long) max_len) )
#define OUTSIDE_STRING(offset, max_len) ( offset <= INT32_MIN || offset > INT32_MAX || (offset < 0 ? -offset > (long) max_len : offset >= (long) max_len) )
#endif // GRAPHEME_GRAPHEME_UTIL_H

11
ext/intl/tests/bug61487.phpt

@ -0,0 +1,11 @@
--TEST--
grapheme() str[i]pos limits
--SKIPIF--
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
--FILE--
<?php
var_dump(grapheme_stripos(1,1,2147483648));
var_dump(grapheme_strpos(1,1,2147483648));
--EXPECT--
bool(false)
bool(false)
Loading…
Cancel
Save