From 09543580471182ecab3b73c982485397edabbce2 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Fri, 30 Apr 2010 17:09:13 +0000
Subject: [PATCH] Fix a couple of places where the result of fgets() wasn't
 checked. This is mostly to suppress compiler warnings, although in principle
 the cases could result in undesirable behavior.

Martin Pitt
---
 src/bin/psql/prompt.c             | 5 +++--
 src/interfaces/libpq/fe-connect.c | 5 +++--
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/bin/psql/prompt.c b/src/bin/psql/prompt.c
index 487ab2804e5..b08234b7814 100644
--- a/src/bin/psql/prompt.c
+++ b/src/bin/psql/prompt.c
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2000-2010, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/psql/prompt.c,v 1.53 2010/01/02 16:57:59 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/prompt.c,v 1.54 2010/04/30 17:09:13 tgl Exp $
  */
 #include "postgres_fe.h"
 
@@ -252,7 +252,8 @@ get_prompt(promptStatus_t status)
 						fd = popen(file, "r");
 						if (fd)
 						{
-							fgets(buf, sizeof(buf), fd);
+							if (fgets(buf, sizeof(buf), fd) == NULL)
+								buf[0] = '\0';
 							pclose(fd);
 						}
 						if (strlen(buf) > 0 && buf[strlen(buf) - 1] == '\n')
diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c
index e2d1355a3db..54db2b7b896 100644
--- a/src/interfaces/libpq/fe-connect.c
+++ b/src/interfaces/libpq/fe-connect.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/interfaces/libpq/fe-connect.c,v 1.391 2010/03/17 20:58:38 petere Exp $
+ *	  $PostgreSQL: pgsql/src/interfaces/libpq/fe-connect.c,v 1.392 2010/04/30 17:09:13 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -4400,7 +4400,8 @@ PasswordFromFile(char *hostname, char *port, char *dbname, char *username)
 				   *ret;
 		int			len;
 
-		fgets(buf, sizeof(buf), fp);
+		if (fgets(buf, sizeof(buf), fp) == NULL)
+			break;
 
 		len = strlen(buf);
 		if (len == 0)
-- 
GitLab