aboutsummaryrefslogtreecommitdiff
path: root/include/libssh/buffer.h
diff options
context:
space:
mode:
authorAndreas Schneider <asn@cryptomilk.org>2015-02-02 14:14:12 +0100
committerAndreas Schneider <asn@cryptomilk.org>2015-02-02 17:32:18 +0100
commitafc9988c933ed74bd4c302d685f1b4d7e1960aab (patch)
tree193217bca85659535b0a5d5c9df47eca8844d2f1 /include/libssh/buffer.h
parent2490404d4505ca49e2f8eb7914bb0b1e2d64db8d (diff)
downloadlibssh-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.h15
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)