diff options
author | Gergely Nagy <algernon@balabit.hu> | 2012-04-08 11:04:59 +0200 |
---|---|---|
committer | Gergely Nagy <algernon@balabit.hu> | 2012-04-08 11:04:59 +0200 |
commit | 5de1bdf4c0b6f8f5d064c27ba8298019b295e970 (patch) | |
tree | 9af764fda9e59862bb178bce2aeae40aacee5e17 /TODO.org | |
parent | be6c6fb1b7e169f8e643e45409efbee1241954c0 (diff) | |
download | libumberlog-5de1bdf4c0b6f8f5d064c27ba8298019b295e970.tar.gz libumberlog-5de1bdf4c0b6f8f5d064c27ba8298019b295e970.tar.xz libumberlog-5de1bdf4c0b6f8f5d064c27ba8298019b295e970.zip |
Properly handle va_lists, by copying.
Up until now, the library abused that passing va_list around without
copying works on various architectures. On others, that does not.
To remedy the issue, the library now parses format strings itself, and
copies va_list. This makes it work on all architectures, independent
on the internal implementation of va_list, and preserves both API and
ABI.
Signed-off-by: Gergely Nagy <algernon@balabit.hu>
Diffstat (limited to 'TODO.org')
-rw-r--r-- | TODO.org | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -84,8 +84,14 @@ CLOSED: [2012-03-20 Tue 12:29] I believe the best way to test would be to re-parse the JSON, extract the fields, and verify they're of the expected value and type. -* TODO Bugfixes -** TODO Missing va_copy() when passing around varargs +* DONE Bugfixes +CLOSED: [2012-04-08 Sun 10:59] +** DONE Missing va_copy() when passing around varargs +CLOSED: [2012-04-08 Sun 10:58] +- CLOSING NOTE [2012-04-08 Sun 10:58] \\ + Ended up writing a format string parsing & spinning macro. This way we + can keep the API and the ABI stable too at the cost of some + performance (which isn't the strong point of the library anyway). The way we pass around varargs is unsafe, and causes crashes on a few systems where we would need to copy the thing around. |