mirror of
https://github.com/ipxe/ipxe
synced 2026-03-16 03:02:07 +03:00
[nfs] Fix double free bug on error path
Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -128,7 +128,6 @@ void oncrpc_init_session ( struct oncrpc_session *session,
|
|||||||
|
|
||||||
int oncrpc_call ( struct interface *intf, struct oncrpc_session *session,
|
int oncrpc_call ( struct interface *intf, struct oncrpc_session *session,
|
||||||
uint32_t proc_name, const struct oncrpc_field fields[] ) {
|
uint32_t proc_name, const struct oncrpc_field fields[] ) {
|
||||||
int rc;
|
|
||||||
size_t frame_size;
|
size_t frame_size;
|
||||||
struct io_buffer *io_buf;
|
struct io_buffer *io_buf;
|
||||||
|
|
||||||
@@ -161,11 +160,7 @@ int oncrpc_call ( struct interface *intf, struct oncrpc_session *session,
|
|||||||
oncrpc_iob_add_fields ( io_buf, header );
|
oncrpc_iob_add_fields ( io_buf, header );
|
||||||
oncrpc_iob_add_fields ( io_buf, fields );
|
oncrpc_iob_add_fields ( io_buf, fields );
|
||||||
|
|
||||||
rc = xfer_deliver_iob ( intf, io_buf );
|
return xfer_deliver_iob ( intf, iob_disown ( io_buf ) );
|
||||||
if ( rc != 0 )
|
|
||||||
free_iob ( io_buf );
|
|
||||||
|
|
||||||
return rc;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t oncrpc_compute_size ( const struct oncrpc_field fields[] ) {
|
size_t oncrpc_compute_size ( const struct oncrpc_field fields[] ) {
|
||||||
|
|||||||
Reference in New Issue
Block a user