From b8a21e5a4821e1492f9791e683efe016f57dc04b Mon Sep 17 00:00:00 2001
From: Yushi Omote <yushiomote@gmail.com>
Date: Mon, 19 Feb 2018 13:51:48 +0900
Subject: [PATCH] sed: check errors of re_search

* sed/regexp.c: check return values from re_search and exit on
fatal errors
---
 sed/regexp.c | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/sed/regexp.c b/sed/regexp.c
index 422e89f..575f175 100644
--- a/sed/regexp.c
+++ b/sed/regexp.c
@@ -21,6 +21,7 @@
 #include <string.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <xalloc.h>
 
 #ifdef gettext_noop
 # define N_(String) gettext_noop(String)
@@ -402,6 +403,10 @@ match_regex(struct regex *regex, char *buf, size_t buflen,
 
               break;
             }
+	  else
+	    {
+	      xalloc_die ();
+	    }
 
           if (end == buf + buflen)
             break;
@@ -410,9 +415,15 @@ match_regex(struct regex *regex, char *buf, size_t buflen,
         }
     }
   else
-    ret = re_search (&regex->pattern, buf, buflen, buf_start_offset,
-                     buflen - buf_start_offset,
-                     regsize ? regarray : NULL);
+    {
+      ret = re_search (&regex->pattern, buf, buflen, buf_start_offset,
+		       buflen - buf_start_offset,
+		       regsize ? regarray : NULL);
+      if (ret <= -1)
+	{
+	  xalloc_die ();
+	}
+    }
 
   return (ret > -1);
 #endif
-- 
2.11.0

