diff options
author | Michael Brown | 2009-02-15 09:41:46 +0100 |
---|---|---|
committer | Michael Brown | 2009-02-15 09:44:22 +0100 |
commit | 8ae1cac0502c2a4d946f7bafa15a944bb1ef48a2 (patch) | |
tree | e271a28b9cb1ecb3749df8fc33e0d6f54eee8c8e /src/net/udp/tftp.c | |
parent | [umalloc] Avoid problems when _textdata_memsz is a multiple of 4kB (diff) | |
download | ipxe-8ae1cac0502c2a4d946f7bafa15a944bb1ef48a2.tar.gz ipxe-8ae1cac0502c2a4d946f7bafa15a944bb1ef48a2.tar.xz ipxe-8ae1cac0502c2a4d946f7bafa15a944bb1ef48a2.zip |
[xfer] Make consistent assumptions that xfer metadata can never be NULL
The documentation in xfer.h and xfer.c does not say that the metadata
parameter is optional in calls such as xfer_deliver_iob_meta() and the
deliver_iob() method. However, some code in net/ is prepared to
accept a NULL pointer, and xfer_deliver_as_iob() passes a NULL pointer
directly to the deliver_iob() method.
Fix this mess of conflicting assumptions by making everything assume
that the metadata parameter is mandatory, and fixing
xfer_deliver_as_iob() to pass in a dummy metadata structure (as is
already done in xfer_deliver_iob()).
Diffstat (limited to 'src/net/udp/tftp.c')
-rw-r--r-- | src/net/udp/tftp.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/src/net/udp/tftp.c b/src/net/udp/tftp.c index ec6b1b40..19525f79 100644 --- a/src/net/udp/tftp.c +++ b/src/net/udp/tftp.c @@ -839,7 +839,7 @@ static int tftp_rx_error ( struct tftp_request *tftp, void *buf, size_t len ) { * * @v tftp TFTP connection * @v iobuf I/O buffer - * @v meta Transfer metadata, or NULL + * @v meta Transfer metadata * @ret rc Return status code */ static int tftp_rx ( struct tftp_request *tftp, @@ -856,11 +856,6 @@ static int tftp_rx ( struct tftp_request *tftp, "%zd\n", tftp, len ); goto done; } - if ( ! meta ) { - DBGC ( tftp, "TFTP %p received packet without metadata\n", - tftp ); - goto done; - } if ( ! meta->src ) { DBGC ( tftp, "TFTP %p received packet without source port\n", tftp ); @@ -907,7 +902,7 @@ static int tftp_rx ( struct tftp_request *tftp, * * @v socket Transport layer interface * @v iobuf I/O buffer - * @v meta Transfer metadata, or NULL + * @v meta Transfer metadata * @ret rc Return status code */ static int tftp_socket_deliver_iob ( struct xfer_interface *socket, @@ -951,7 +946,7 @@ static struct xfer_interface_operations tftp_socket_operations = { * * @v mc_socket Multicast transport layer interface * @v iobuf I/O buffer - * @v meta Transfer metadata, or NULL + * @v meta Transfer metadata * @ret rc Return status code */ static int tftp_mc_socket_deliver_iob ( struct xfer_interface *mc_socket, |