Skip to content

Commit 3aedd7c

Browse files
jmcclbavshin-f5
authored andcommitted
fix(examples): Resize vector holding ip address to correct size
1 parent b35efdb commit 3aedd7c

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

examples/httporigdst.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@ impl Default for NgxHttpOrigDstCtx {
2828

2929
impl NgxHttpOrigDstCtx {
3030
pub fn save(&mut self, addr: &str, port: in_port_t, pool: &mut core::Pool) -> core::Status {
31-
let addr_data = pool.alloc(IPV4_STRLEN);
31+
let addr_data = pool.alloc(addr.len());
3232
if addr_data.is_null() {
3333
return core::Status::NGX_ERROR;
3434
}
35-
unsafe { libc::memcpy(addr_data, addr.as_ptr() as *const c_void, IPV4_STRLEN) };
36-
self.orig_dst_addr.len = IPV4_STRLEN;
35+
unsafe { libc::memcpy(addr_data, addr.as_ptr() as *const c_void, addr.len()) };
36+
self.orig_dst_addr.len = addr.len();
3737
self.orig_dst_addr.data = addr_data as *mut u8;
3838

3939
let port_str = port.to_string();
@@ -204,6 +204,7 @@ unsafe fn ngx_get_origdst(request: &mut http::Request) -> Result<(String, in_por
204204
ngx_log_debug_http!(request, "httporigdst: ngx_sock_ntop failed to convert sockaddr");
205205
return Err(core::Status::NGX_ERROR);
206206
}
207+
ip.truncate(e);
207208

208209
let port = unsafe { ngx_inet_get_port(std::ptr::addr_of_mut!(addr) as *mut sockaddr) };
209210

0 commit comments

Comments
 (0)