]> git.draconx.ca Git - cdecl99.git/commitdiff
libcdecl: Sidestep some possible snprintf issues.
authorNick Bowler <nbowler@draconx.ca>
Thu, 20 Jul 2023 02:12:24 +0000 (22:12 -0400)
committerNick Bowler <nbowler@draconx.ca>
Thu, 20 Jul 2023 02:12:24 +0000 (22:12 -0400)
Adjust cdecl__emit to avoid some known problems with snprintf
implementations:

 * some implementations (e.g., newlib 1.8.2) write to the destination
   when the size is zero.
 * some implementations (e.g., HP-UX 11) return -1 when the string is
   truncated.
 * some implementations (e.g., the replacement provided by gnulib!)
   allocate memory even for trivial conversions and return -1 on malloc
   failure.

Since we currently use gnulib, only the last one is presently a concern,
but the plan is to eventually remove the library dependency on gnulib
snprintf since in reality we barely need any snprintf functionality.

Adjust the cdecl__emit implementation to simply avoid tripping over these
sorts of problems.  Other snprintf calls in the library remain as before.


No differences found