Parcourir la source

[nfs] Fix double free bug on error path

Signed-off-by: Michael Brown <mcb30@ipxe.org>
tags/v1.20.1
Michael Brown il y a 7 ans
Parent
révision
e500e5dd07
1 fichiers modifiés avec 1 ajouts et 6 suppressions
  1. 1
    6
      src/net/tcp/oncrpc.c

+ 1
- 6
src/net/tcp/oncrpc.c Voir le fichier

128
 
128
 
129
 int oncrpc_call ( struct interface *intf, struct oncrpc_session *session,
129
 int oncrpc_call ( struct interface *intf, struct oncrpc_session *session,
130
                   uint32_t proc_name, const struct oncrpc_field fields[] ) {
130
                   uint32_t proc_name, const struct oncrpc_field fields[] ) {
131
-	int              rc;
132
 	size_t           frame_size;
131
 	size_t           frame_size;
133
 	struct io_buffer *io_buf;
132
 	struct io_buffer *io_buf;
134
 
133
 
161
 	oncrpc_iob_add_fields ( io_buf, header );
160
 	oncrpc_iob_add_fields ( io_buf, header );
162
 	oncrpc_iob_add_fields ( io_buf, fields );
161
 	oncrpc_iob_add_fields ( io_buf, fields );
163
 
162
 
164
-	rc = xfer_deliver_iob ( intf, io_buf );
165
-	if ( rc != 0 )
166
-		free_iob ( io_buf );
167
-
168
-	return rc;
163
+	return xfer_deliver_iob ( intf, iob_disown ( io_buf ) );
169
 }
164
 }
170
 
165
 
171
 size_t oncrpc_compute_size ( const struct oncrpc_field fields[] ) {
166
 size_t oncrpc_compute_size ( const struct oncrpc_field fields[] ) {

Chargement…
Annuler
Enregistrer