pgsql: Replace some strtok() with strsep() - Mailing list pgsql-committers

From Peter Eisentraut
Subject pgsql: Replace some strtok() with strsep()
Date
Msg-id E1sVtSx-000iLM-EG@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
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(-)


pgsql-committers by date:

Previous
From: Alvaro Herrera
Date:
Subject: pgsql: postgres_fdw: Split out the query_cancel test to its own file
Next
From: Robert Haas
Date:
Subject: pgsql: Add missing call to ConditionVariableCancelSleep().