about summary refs log tree commit diff
path: root/nixpkgs/pkgs/servers/sql/pgpool/pgpool.patch
blob: 7c9d92a88bf7d4770a947532b9afba27392cb1a5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
diff --git a/src/main/main.c b/src/main/main.c
index eec3c3e4..4169112b 100644
--- a/src/main/main.c
+++ b/src/main/main.c
@@ -337,10 +337,14 @@ main(int argc, char **argv)
 		char		dirnamebuf[POOLMAXPATHLEN + 1];
 		char	   *dirp;
 
-		strlcpy(dirnamebuf, conf_file, sizeof(dirnamebuf));
-		dirp = dirname(dirnamebuf);
-		snprintf(pool_passwd, sizeof(pool_passwd), "%s/%s",
-				 dirp, pool_config->pool_passwd);
+		if (pool_config->pool_passwd[0] != '/') {
+			strlcpy(dirnamebuf, conf_file, sizeof(dirnamebuf));
+			dirp = dirname(dirnamebuf);
+			snprintf(pool_passwd, sizeof(pool_passwd), "%s/%s",
+					 dirp, pool_config->pool_passwd);
+		} else
+			strlcpy(pool_passwd, pool_config->pool_passwd,
+				 sizeof(pool_passwd));
 		pool_init_pool_passwd(pool_passwd, POOL_PASSWD_R);
 	}