8
8
*
9
9
*
10
10
* IDENTIFICATION
11
- * $PostgreSQL: pgsql/src/backend/libpq/auth.c,v 1.164 2008/02/08 17:58:46 tgl Exp $
11
+ * $PostgreSQL: pgsql/src/backend/libpq/auth.c,v 1.165 2008/07/24 17:51:55 tgl Exp $
12
12
*
13
13
*-------------------------------------------------------------------------
14
14
*/
@@ -1399,8 +1399,14 @@ CheckLDAPAuth(Port *port)
1399
1399
}
1400
1400
1401
1401
/*
1402
- * Crack the LDAP url. We do a very trivial parse..
1402
+ * Crack the LDAP url. We do a very trivial parse:
1403
+ *
1403
1404
* ldap[s]://<server>[:<port>]/<basedn>[;prefix[;suffix]]
1405
+ *
1406
+ * This code originally used "%127s" for the suffix, but that doesn't
1407
+ * work for embedded whitespace. We know that tokens formed by
1408
+ * hba.c won't include newlines, so we can use a "not newline" scanset
1409
+ * instead.
1404
1410
*/
1405
1411
1406
1412
server [0 ] = '\0' ;
@@ -1410,13 +1416,13 @@ CheckLDAPAuth(Port *port)
1410
1416
1411
1417
/* ldap, including port number */
1412
1418
r = sscanf (port -> auth_arg ,
1413
- "ldap://%127[^:]:%d/%127[^;];%127[^;];%127s " ,
1419
+ "ldap://%127[^:]:%d/%127[^;];%127[^;];%127[^\n] " ,
1414
1420
server , & ldapport , basedn , prefix , suffix );
1415
1421
if (r < 3 )
1416
1422
{
1417
1423
/* ldaps, including port number */
1418
1424
r = sscanf (port -> auth_arg ,
1419
- "ldaps://%127[^:]:%d/%127[^;];%127[^;];%127s " ,
1425
+ "ldaps://%127[^:]:%d/%127[^;];%127[^;];%127[^\n] " ,
1420
1426
server , & ldapport , basedn , prefix , suffix );
1421
1427
if (r >= 3 )
1422
1428
ssl = true;
@@ -1425,14 +1431,14 @@ CheckLDAPAuth(Port *port)
1425
1431
{
1426
1432
/* ldap, no port number */
1427
1433
r = sscanf (port -> auth_arg ,
1428
- "ldap://%127[^/]/%127[^;];%127[^;];%127s " ,
1434
+ "ldap://%127[^/]/%127[^;];%127[^;];%127[^\n] " ,
1429
1435
server , basedn , prefix , suffix );
1430
1436
}
1431
1437
if (r < 2 )
1432
1438
{
1433
1439
/* ldaps, no port number */
1434
1440
r = sscanf (port -> auth_arg ,
1435
- "ldaps://%127[^/]/%127[^;];%127[^;];%127s " ,
1441
+ "ldaps://%127[^/]/%127[^;];%127[^;];%127[^\n] " ,
1436
1442
server , basedn , prefix , suffix );
1437
1443
if (r >= 2 )
1438
1444
ssl = true;
0 commit comments