discomfitor pushed a commit to branch master.

http://git.enlightenment.org/libs/esskyuehl.git/commit/?id=a4140500795a2c2b5a23dd5053924853e06b3658

commit a4140500795a2c2b5a23dd5053924853e06b3658
Author: zmike <michael.blumenkra...@gmail.com>
Date:   Wed May 21 08:40:52 2014 -0400

    fix psql crash on null address during connect
---
 src/modules/postgresql/esql_postgresql_backend.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/modules/postgresql/esql_postgresql_backend.c 
b/src/modules/postgresql/esql_postgresql_backend.c
index 6c4b1f0..0d17dab 100644
--- a/src/modules/postgresql/esql_postgresql_backend.c
+++ b/src/modules/postgresql/esql_postgresql_backend.c
@@ -187,6 +187,7 @@ esql_postgresql_setup(Esql *e, const char *addr, const char 
*user, const char *p
    const char *db;
 
    if (e->backend.conn_str && (!addr) && (!user) && (!passwd)) return; /* 
reconnect attempt */
+   if ((!addr) || (!user)) return;
    db = e->database ? e->database : user;
 
    port = strchr(addr, ':');
@@ -194,8 +195,8 @@ esql_postgresql_setup(Esql *e, const char *addr, const char 
*user, const char *p
      e->backend.conn_str_len = snprintf(buf, sizeof(buf), "host=%s port=%s 
dbname=%s user=%s password=%s connect_timeout=5",
                                                           strndupa(addr, port 
- addr), port + 1, db, user, passwd);
    else
-     e->backend.conn_str_len = snprintf(buf, sizeof(buf), "host=%s dbname=%s 
user=%s password=%s connect_timeout=5",
-                                                          addr, db, user, 
passwd);
+     e->backend.conn_str_len = snprintf(buf, sizeof(buf), "host=%s dbname=%s 
user=%s %s%s connect_timeout=5",
+                                                          addr, db, user, 
passwd ? "password=" : "", passwd ?: "");
    e->backend.conn_str = strdup(buf);
 }
 

-- 


Reply via email to