mirror of
https://git.libssh.org/projects/libssh.git
synced 2026-02-11 18:50:28 +09:00
Revert "buffer: Create ssh_buffer_validate_length()"
This reverts commit 34bdc1ca78.
This commit is contained in:
@@ -48,8 +48,6 @@ int ssh_buffer_add_u16(ssh_buffer buffer, uint16_t data);
|
|||||||
int ssh_buffer_add_u32(ssh_buffer buffer, uint32_t data);
|
int ssh_buffer_add_u32(ssh_buffer buffer, uint32_t data);
|
||||||
int ssh_buffer_add_u64(ssh_buffer buffer, uint64_t data);
|
int ssh_buffer_add_u64(ssh_buffer buffer, uint64_t data);
|
||||||
|
|
||||||
int ssh_buffer_validate_length(struct ssh_buffer_struct *buffer, size_t len);
|
|
||||||
|
|
||||||
int ssh_buffer_pack_va(struct ssh_buffer_struct *buffer,
|
int ssh_buffer_pack_va(struct ssh_buffer_struct *buffer,
|
||||||
const char *format,
|
const char *format,
|
||||||
int argc,
|
int argc,
|
||||||
|
|||||||
22
src/buffer.c
22
src/buffer.c
@@ -526,7 +526,7 @@ uint32_t ssh_buffer_get_data(struct ssh_buffer_struct *buffer, void *data, uint3
|
|||||||
* Check for a integer overflow first, then check if not enough data is in
|
* Check for a integer overflow first, then check if not enough data is in
|
||||||
* the buffer.
|
* the buffer.
|
||||||
*/
|
*/
|
||||||
if (!ssh_buffer_validate_length(buffer, len)) {
|
if (buffer->pos + len < len || buffer->pos + len > buffer->used) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
memcpy(data,buffer->data+buffer->pos,len);
|
memcpy(data,buffer->data+buffer->pos,len);
|
||||||
@@ -580,24 +580,6 @@ int ssh_buffer_get_u64(struct ssh_buffer_struct *buffer, uint64_t *data){
|
|||||||
return ssh_buffer_get_data(buffer,data,sizeof(uint64_t));
|
return ssh_buffer_get_data(buffer,data,sizeof(uint64_t));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Valdiates that the given length can be obtained from the buffer.
|
|
||||||
*
|
|
||||||
* @param[in] buffer The buffer to read from.
|
|
||||||
*
|
|
||||||
* @param[in] len The length to be checked.
|
|
||||||
*
|
|
||||||
* @return SSH_OK if the length is valid, SSH_ERROR otherwise.
|
|
||||||
*/
|
|
||||||
int ssh_buffer_validate_length(struct ssh_buffer_struct *buffer, size_t len)
|
|
||||||
{
|
|
||||||
if (buffer->pos + len < len || buffer->pos + len > buffer->used) {
|
|
||||||
return SSH_ERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
return SSH_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @internal
|
* @internal
|
||||||
*
|
*
|
||||||
@@ -617,7 +599,7 @@ struct ssh_string_struct *ssh_buffer_get_ssh_string(struct ssh_buffer_struct *bu
|
|||||||
}
|
}
|
||||||
hostlen = ntohl(stringlen);
|
hostlen = ntohl(stringlen);
|
||||||
/* verify if there is enough space in buffer to get it */
|
/* verify if there is enough space in buffer to get it */
|
||||||
if (!ssh_buffer_validate_length(buffer, hostlen) {
|
if (buffer->pos + hostlen < hostlen || buffer->pos + hostlen > buffer->used) {
|
||||||
return NULL; /* it is indeed */
|
return NULL; /* it is indeed */
|
||||||
}
|
}
|
||||||
str = ssh_string_new(hostlen);
|
str = ssh_string_new(hostlen);
|
||||||
|
|||||||
Reference in New Issue
Block a user