mirror of
https://git.libssh.org/projects/libssh.git
synced 2025-08-08 19:02:06 +03:00
buffer: Add and use ssh_buffer_allocate_size()
Add a small helper for ssh_buffer to ensure that the buffer has a certain amount of space already preallocated. This can be useful in case it is known how much data is going to be added to a buffer, to avoid multiple reallocations. Make use of it in few places in the library. Signed-off-by: Pino Toscano <ptoscano@redhat.com> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
This commit is contained in:
committed by
Andreas Schneider
parent
afa4021ded
commit
12284b75fa
12
src/pcap.c
12
src/pcap.c
@@ -165,6 +165,12 @@ int ssh_pcap_file_write_packet(ssh_pcap_file pcap, ssh_buffer packet, uint32_t o
|
||||
if(header == NULL)
|
||||
return SSH_ERROR;
|
||||
gettimeofday(&now,NULL);
|
||||
err = ssh_buffer_allocate_size(header,
|
||||
sizeof(uint32_t) * 4 +
|
||||
ssh_buffer_get_len(packet));
|
||||
if (err < 0) {
|
||||
goto error;
|
||||
}
|
||||
err = ssh_buffer_add_u32(header,htonl(now.tv_sec));
|
||||
if (err < 0) {
|
||||
goto error;
|
||||
@@ -209,6 +215,12 @@ int ssh_pcap_file_open(ssh_pcap_file pcap, const char *filename){
|
||||
header=ssh_buffer_new();
|
||||
if(header==NULL)
|
||||
return SSH_ERROR;
|
||||
err = ssh_buffer_allocate_size(header,
|
||||
sizeof(uint32_t) * 5 +
|
||||
sizeof(uint16_t) * 2);
|
||||
if (err < 0) {
|
||||
goto error;
|
||||
}
|
||||
err = ssh_buffer_add_u32(header,htonl(PCAP_MAGIC));
|
||||
if (err < 0) {
|
||||
goto error;
|
||||
|
Reference in New Issue
Block a user