diff --git a/src/backend/utils/misc/database.c b/src/backend/utils/misc/database.c
index 293d9df525ca3de9392aadad08a6a30bb7408bc4..6013c8da12d52345040673e0cd8f4c0f5d9a64c4 100644
--- a/src/backend/utils/misc/database.c
+++ b/src/backend/utils/misc/database.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/utils/misc/Attic/database.c,v 1.49 2001/10/25 05:49:51 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/utils/misc/Attic/database.c,v 1.50 2002/05/05 17:50:04 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -222,8 +222,10 @@ GetRawDatabaseInfo(const char *name, Oid *db_id, char *path)
 				/* Found it; extract the OID and the database path. */
 				*db_id = tup.t_data->t_oid;
 				pathlen = VARSIZE(&(tup_db->datpath)) - VARHDRSZ;
+				if (pathlen < 0)
+					pathlen = 0;				/* pure paranoia */
 				if (pathlen >= MAXPGPATH)
-					pathlen = MAXPGPATH - 1;	/* pure paranoia */
+					pathlen = MAXPGPATH - 1;	/* more paranoia */
 				strncpy(path, VARDATA(&(tup_db->datpath)), pathlen);
 				path[pathlen] = '\0';
 				goto done;