Thread: pgsql: Replace some strtok() with strsep()
Replace some strtok() with strsep() strtok() considers adjacent delimiters to be one delimiter, which is arguably the wrong behavior in some cases. Replace with strsep(), which has the right behavior: Adjacent delimiters create an empty token. Affected by this are parsing of: - Stored SCRAM secrets ("SCRAM-SHA-256$<iterations>:<salt>$<storedkey>:<serverkey>") - ICU collation attributes ("und@colStrength=primary;colCaseLevel=yes") for ICU older than version 54 - PG_COLORS environment variable ("error=01;31:warning=01;35:note=01;36:locus=01") - pg_regress command-line options with comma-separated list arguments (--dbname, --create-role) (currently only used pg_regress_ecpg) Reviewed-by: Kyotaro Horiguchi <horikyota.ntt@gmail.com> Reviewed-by: David Steele <david@pgmasters.net> Discussion: https://www.postgresql.org/message-id/flat/79692bf9-17d3-41e6-b9c9-fc8c3944222a@eisentraut.org Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/5d2e1cc117b38db6bb5dc2e9ae9115304571ac70 Modified Files -------------- src/backend/libpq/auth-scram.c | 11 +++++------ src/backend/utils/adt/pg_locale.c | 3 ++- src/common/logging.c | 4 +++- src/test/regress/pg_regress.c | 5 ++--- 4 files changed, 12 insertions(+), 11 deletions(-)