Hi Pádraig, > The attached should fix up those tests.
I disagree with the removal of the '%' checks in tests/test-sh-quote.c and tests/test-system-quote-main.c. These checks are there to guarantee that the functions won't write past the allocated buffer. For example, sh-quote.h specifies how large the buffer must be: /* Copies the quoted string to p and returns the incremented p. There must be room for shell_quote_length (string) + 1 bytes at p. */ extern char * shell_quote_copy (char *p, const char *string); system-quote.h specifies it similarly: /* Copies the quoted string to p and returns the incremented p. There must be room for system_quote_length (string) + 1 bytes at p. */ extern char * system_quote_copy (char *p, enum system_command_interpreter interpreter, const char *string); The tests verify this. Please can you restore the checks and instead see why quotearg now writes more bytes than necessary? Note that both shell_quote_length and shell_quote_copy are defined through the 'quotearg' module, with the same options (called 'sh_quoting_options' there). The buffer overrun indicates an internal inconsistency in the 'quotearg' module. Bruno