diff --git a/src/misc.c b/src/misc.c index e02f60fc..a61f126c 100644 --- a/src/misc.c +++ b/src/misc.c @@ -744,7 +744,7 @@ int _libssh2_get_u32(struct string_buf *buf, uint32_t *out) return 0; } -int _libssh2_get_u64(struct string_buf *buf, uint64_t *out) +int _libssh2_get_u64(struct string_buf *buf, libssh2_uint64_t *out) { if (!_libssh2_check_length(buf, 8)) { return -1; @@ -753,7 +753,7 @@ int _libssh2_get_u64(struct string_buf *buf, uint64_t *out) unsigned char *p = buf->dataptr; *out = _libssh2_ntohu64(p); buf->dataptr += 8; - buf->offset -= 8; + buf->offset += 8; return 0; } diff --git a/src/misc.h b/src/misc.h index d569c921..de249dbd 100644 --- a/src/misc.h +++ b/src/misc.h @@ -91,7 +91,7 @@ void _libssh2_explicit_zero(void *buf, size_t size); struct string_buf* _libssh2_string_buf_new(LIBSSH2_SESSION *session); void _libssh2_string_buf_free(LIBSSH2_SESSION *session, struct string_buf *buf); int _libssh2_get_u32(struct string_buf *buf, uint32_t *out); -int _libssh2_get_u64(struct string_buf *buf, uint64_t *out); +int _libssh2_get_u64(struct string_buf *buf, libssh2_uint64_t *out); int _libssh2_match_string(struct string_buf *buf, const char *match); int _libssh2_get_c_string(struct string_buf *buf, unsigned char **outbuf); int _libssh2_get_bignum_bytes(struct string_buf *buf, unsigned char **outbuf);