Commits

Marc Fournier  committed 3704b99

- libpq calls "fe_getauthname()" two times in "fe-connect.c", but
doesn't free the buffer allocated by this function.

- submitted by: Erich Stamberger <eberger@gewi.kfunigraz.ac.at>

  • Participants
  • Parent commits df1a06e

Comments (0)

Files changed (1)

File src/interfaces/libpq/fe-connect.c

  *
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.2 1996/07/12 04:53:57 scrappy Exp $
+ *    $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.3 1996/07/19 07:00:56 scrappy Exp $
  *
  *-------------------------------------------------------------------------
  */
     } else
 	conn->pgoptions = strdup(pgoptions);
 
-    if (!dbName || dbName[0] == '\0') {
-	char errorMessage[ERROR_MSG_LENGTH];
-	if (!(tmp = getenv("PGDATABASE")) &&
-	    !(tmp = fe_getauthname(errorMessage))) {
-	    sprintf(conn->errorMessage,
-		    "FATAL: PQsetdb: Unable to determine a database name!\n");
-/*	    pqdebug("%s", conn->errorMessage); */
-	    conn->dbName = NULL;
-	    return conn;
-	}
+    if (((tmp = dbName) && (dbName[0] != '\0')) ||
+	((tmp = getenv("PGDATABASE"))))
 	conn->dbName = strdup(tmp);
-    } else
-	conn->dbName = strdup(dbName);
-
+    else {
+      char errorMessage[ERROR_MSG_LENGTH];
+      if (tmp = fe_getauthname(errorMessage)) {
+	conn->dbName = strdup(tmp);
+	free(tmp);
+      }
+      else {
+	sprintf(conn->errorMessage,
+		"FATAL: PQsetdb: Unable to determine a database name!\n");
+/*	pqdebug("%s", conn->errorMessage); */
+	conn->dbName = NULL;
+	return conn;
+      }
+    }
     conn->status = connectDB(conn);
     return conn;
 }
     user = fe_getauthname(conn->errorMessage);
     if (!user)
 	goto connect_errReturn;
-    strncpy(startup.database,conn->dbName,sizeof(startup.database));
     strncpy(startup.user,user,sizeof(startup.user));
+    free(user);
+    strncpy(startup.database,conn->dbName,sizeof(startup.database));
     strncpy(startup.tty,conn->pgtty,sizeof(startup.tty));
     if (conn->pgoptions) {
 	strncpy(startup.options,conn->pgoptions, sizeof(startup.options));