@@ -1623,9 +1623,15 @@ static const char *dirsection(cmd_parms *cmd, void *mconfig, const char *arg)
16231623 if (!cmd -> path )
16241624 return "<Directory ~ > block must specify a path" ;
16251625 r = ap_pregcomp (cmd -> pool , cmd -> path , REG_EXTENDED |USE_ICASE );
1626+ if (!r ) {
1627+ return "Regex could not be compiled" ;
1628+ }
16261629 }
16271630 else if (thiscmd -> cmd_data ) { /* <DirectoryMatch> */
16281631 r = ap_pregcomp (cmd -> pool , cmd -> path , REG_EXTENDED |USE_ICASE );
1632+ if (!r ) {
1633+ return "Regex could not be compiled" ;
1634+ }
16291635 }
16301636 else if (!strcmp (cmd -> path , "/" ) == 0 )
16311637 {
@@ -1707,10 +1713,16 @@ static const char *urlsection(cmd_parms *cmd, void *mconfig, const char *arg)
17071713
17081714 if (thiscmd -> cmd_data ) { /* <LocationMatch> */
17091715 r = ap_pregcomp (cmd -> pool , cmd -> path , REG_EXTENDED );
1716+ if (!r ) {
1717+ return "Regex could not be compiled" ;
1718+ }
17101719 }
17111720 else if (!strcmp (cmd -> path , "~" )) {
17121721 cmd -> path = ap_getword_conf (cmd -> pool , & arg );
17131722 r = ap_pregcomp (cmd -> pool , cmd -> path , REG_EXTENDED );
1723+ if (!r ) {
1724+ return "Regex could not be compiled" ;
1725+ }
17141726 }
17151727
17161728 /* initialize our config and fetch it */
@@ -1769,10 +1781,16 @@ static const char *filesection(cmd_parms *cmd, void *mconfig, const char *arg)
17691781
17701782 if (thiscmd -> cmd_data ) { /* <FilesMatch> */
17711783 r = ap_pregcomp (cmd -> pool , cmd -> path , REG_EXTENDED |USE_ICASE );
1784+ if (!r ) {
1785+ return "Regex could not be compiled" ;
1786+ }
17721787 }
17731788 else if (!strcmp (cmd -> path , "~" )) {
17741789 cmd -> path = ap_getword_conf (cmd -> pool , & arg );
17751790 r = ap_pregcomp (cmd -> pool , cmd -> path , REG_EXTENDED |USE_ICASE );
1791+ if (!r ) {
1792+ return "Regex could not be compiled" ;
1793+ }
17761794 }
17771795 else {
17781796 char * newpath ;
0 commit comments