diff options
author | Andreas Schneider <asn@cryptomilk.org> | 2015-02-02 14:14:12 +0100 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2015-02-02 17:32:18 +0100 |
commit | afc9988c933ed74bd4c302d685f1b4d7e1960aab (patch) | |
tree | 193217bca85659535b0a5d5c9df47eca8844d2f1 /include/libssh/buffer.h | |
parent | 2490404d4505ca49e2f8eb7914bb0b1e2d64db8d (diff) | |
download | libssh-afc9988c933ed74bd4c302d685f1b4d7e1960aab.tar.gz libssh-afc9988c933ed74bd4c302d685f1b4d7e1960aab.tar.xz libssh-afc9988c933ed74bd4c302d685f1b4d7e1960aab.zip |
buffer: Improve argument checking in ssh_buffer_pack()
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
Reviewed-by: Aris Adamantiadis <aris@0xbadc0de.be>
Diffstat (limited to 'include/libssh/buffer.h')
-rw-r--r-- | include/libssh/buffer.h | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/include/libssh/buffer.h b/include/libssh/buffer.h index 2aebe7e7..1cc8196c 100644 --- a/include/libssh/buffer.h +++ b/include/libssh/buffer.h @@ -52,9 +52,18 @@ int buffer_add_u16(ssh_buffer buffer, uint16_t data); int buffer_add_u32(ssh_buffer buffer, uint32_t data); int buffer_add_u64(ssh_buffer buffer, uint64_t data); int ssh_buffer_add_data(ssh_buffer buffer, const void *data, uint32_t len); -int ssh_buffer_pack_va(struct ssh_buffer_struct *buffer, const char *format, va_list ap); -int _ssh_buffer_pack(struct ssh_buffer_struct *buffer, const char *format, ...); -#define ssh_buffer_pack(buffer, format, ...) _ssh_buffer_pack((buffer),(format), __VA_ARGS__, SSH_BUFFER_PACK_END) + +int ssh_buffer_pack_va(struct ssh_buffer_struct *buffer, + const char *format, + int argc, + va_list ap); +int _ssh_buffer_pack(struct ssh_buffer_struct *buffer, + const char *format, + int argc, + ...); +#define ssh_buffer_pack(buffer, format, ...) \ + _ssh_buffer_pack((buffer), (format), __VA_NARG__(__VA_ARGS__), __VA_ARGS__, SSH_BUFFER_PACK_END) + int ssh_buffer_unpack_va(struct ssh_buffer_struct *buffer, const char *format, va_list ap); int _ssh_buffer_unpack(struct ssh_buffer_struct *buffer, const char *format, ...); #define ssh_buffer_unpack(buffer, format, ...) _ssh_buffer_unpack((buffer),(format), __VA_ARGS__, SSH_BUFFER_PACK_END) |