diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | pcreposix.c | 6 |
2 files changed, 7 insertions, 4 deletions
@@ -45,7 +45,10 @@ length incorrectly, which could result in buffer overflow. 11. Applied C++ patch from Irfan Adilovic to guard 'using std::' directives with namespace pcrecpp (Bugzilla #2084). -12. Remove a duplication typo in pcre_tables.c +12. Remove a duplication typo in pcre_tables.c. + +13. Fix returned offsets from regexec() when REG_STARTEND is used with a +starting offset greater than zero. Version 8.40 11-January-2017 diff --git a/pcreposix.c b/pcreposix.c index cf75588..7b404a7 100644 --- a/pcreposix.c +++ b/pcreposix.c @@ -6,7 +6,7 @@ and semantics are as close as possible to those of the Perl 5 language. Written by Philip Hazel - Copyright (c) 1997-2016 University of Cambridge + Copyright (c) 1997-2017 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without @@ -389,8 +389,8 @@ if (rc >= 0) { for (i = 0; i < (size_t)rc; i++) { - pmatch[i].rm_so = ovector[i*2]; - pmatch[i].rm_eo = ovector[i*2+1]; + pmatch[i].rm_so = ovector[i*2] + so; + pmatch[i].rm_eo = ovector[i*2+1] + so; } if (allocated_ovector) free(ovector); for (; i < nmatch; i++) pmatch[i].rm_so = pmatch[i].rm_eo = -1; |