BUG/MINOR: cfgparse: report proper location for log-format-sd errors
authorAurelien DARRAGON <adarragon@haproxy.com>
Wed, 28 Feb 2024 18:29:27 +0000 (19:29 +0100)
committerAurelien DARRAGON <adarragon@haproxy.com>
Thu, 7 Mar 2024 10:48:17 +0000 (11:48 +0100)
commitcf37e4cc1b8c63c437c6825d2e70588a6ccb8847
tree25d0295df3664fe7b3eb08e3cf081d9efb971651
parent59f08f65fdb0aa54b99cc8e158a66b28d9052215
BUG/MINOR: cfgparse: report proper location for log-format-sd errors

When a parsing error occurs inside a log-format-sd expression, we report
the location of the log-format directive (which may not be set) instead
of reporting the proper log-format-sd directive location where the parsing
error occured.

 1|listen test
 2|  log-format "%B"      # no error
 3|  log-format-sd "%bad" # error

 | [ALERT]    (322261) : config : Parsing [empty.conf:2]: failed to parse log-format-sd : no such format variable 'bad'. If you wanted to emit the '%' character verbatim, you need to use '%%'.

The fix consists in using the config hints dedicated to log-format-sd
directive instead of the log-format one.

The bug was introduced in 8a4e4420 ("MEDIUM: log-format: Use standard
HAProxy log system to report errors").

This should be backported to every stable versions.
src/cfgparse.c