aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/regexp.c
diff options
context:
space:
mode:
authorMarc G. Fournier <scrappy@hub.org>1996-07-09 06:39:19 +0000
committerMarc G. Fournier <scrappy@hub.org>1996-07-09 06:39:19 +0000
commit950b6ab02272057811dcb4cdf2edcdc2f01b81b7 (patch)
tree077026969d8751823f4067eb287047015d4b5644 /src/backend/utils/adt/regexp.c
parent25bb71835f1d3c3ab85cfa33dbdf95419d003c2a (diff)
downloadpostgresql-950b6ab02272057811dcb4cdf2edcdc2f01b81b7.tar.gz
postgresql-950b6ab02272057811dcb4cdf2edcdc2f01b81b7.zip
Fixes: Using LIKE or ~ operator on text type files which are null valued
causes segmentation fault. Thanks to: Salvador Ortiz Garcia, Robert Patrick, Paul 'Shag' Walmsley, and James Cooper for finding and fixing the problem.
Diffstat (limited to 'src/backend/utils/adt/regexp.c')
-rw-r--r--src/backend/utils/adt/regexp.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/backend/utils/adt/regexp.c b/src/backend/utils/adt/regexp.c
index 4b5a0089039..670ad48f6ca 100644
--- a/src/backend/utils/adt/regexp.c
+++ b/src/backend/utils/adt/regexp.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/regexp.c,v 1.1.1.1 1996/07/09 06:22:05 scrappy Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/regexp.c,v 1.2 1996/07/09 06:39:19 scrappy Exp $
*
* Alistair Crooks added the code for the regex caching
* agc - cached the regular expressions used - there's a good chance
@@ -240,6 +240,7 @@ char16regexne(char *s, struct varlena *p)
bool
nameregexeq(NameData *n, struct varlena *p)
{
+ if (!n) return FALSE;
return (fixedlen_regexeq(n->data, p, NAMEDATALEN, REG_EXTENDED));
}
bool
@@ -251,6 +252,7 @@ nameregexne(NameData *s, struct varlena *p)
bool
textregexeq(struct varlena *s, struct varlena *p)
{
+ if (!s) return (FALSE);
return (fixedlen_regexeq(VARDATA(s), p, VARSIZE(s) - VARHDRSZ, REG_EXTENDED));
}
@@ -319,6 +321,7 @@ char16icregexne(char *s, struct varlena *p)
bool
texticregexeq(struct varlena *s, struct varlena *p)
{
+ if (!s) return FALSE;
return (fixedlen_regexeq(VARDATA(s), p, VARSIZE(s) - VARHDRSZ,
REG_ICASE | REG_EXTENDED));
}
@@ -332,6 +335,7 @@ texticregexne(struct varlena *s, struct varlena *p)
bool
nameicregexeq(NameData *n, struct varlena *p)
{
+ if (!n) return FALSE;
return (fixedlen_regexeq(n->data, p, NAMEDATALEN,
REG_ICASE | REG_EXTENDED));
}