summaryrefslogtreecommitdiffstats
path: root/src/sh_string.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sh_string.c')
-rw-r--r--src/sh_string.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/sh_string.c b/src/sh_string.c
index a898dd9..58e8c06 100644
--- a/src/sh_string.c
+++ b/src/sh_string.c
@@ -643,7 +643,8 @@ sh_string * sh_string_replace(const sh_string * s,
{
len = (size_t) tlen;
- if (tlen > 0 && r->siz > (r->len + len))
+ if (tlen > 0 && r->siz > (r->len + len) &&
+ &(s->str[ovector[last]]) )
{
memcpy(p, &(s->str[ovector[last]]), (size_t)len);
p += len;
@@ -674,7 +675,8 @@ sh_string * sh_string_replace(const sh_string * s,
if (tlen > 0)
{
len = (size_t)tlen;
- if (r->siz >= (r->len + len)) {
+ if (r->siz >= (r->len + len) &&
+ &(s->str[ovector[2*i -1]]) ) {
memcpy(p, &(s->str[ovector[2*i -1]]), (size_t)len);
p += (len - 1);
r->len += (len - 1);