From patchwork Wed Jun 28 11:46:25 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Huth X-Patchwork-Id: 781592 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [103.22.144.68]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3wyLbr55D1z9s0m for ; Wed, 28 Jun 2017 21:46:32 +1000 (AEST) Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 3wyLbr4906zDr3y for ; Wed, 28 Jun 2017 21:46:32 +1000 (AEST) X-Original-To: slof@lists.ozlabs.org Delivered-To: slof@lists.ozlabs.org Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 3wyLbn05R5zDr3f for ; Wed, 28 Jun 2017 21:46:29 +1000 (AEST) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id B2698110E for ; Wed, 28 Jun 2017 11:46:26 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com B2698110E Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=thuth@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com B2698110E Received: from thh440s.redhat.com (ovpn-116-134.ams2.redhat.com [10.36.116.134]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0F89317D11 for ; Wed, 28 Jun 2017 11:46:25 +0000 (UTC) From: Thomas Huth To: slof@lists.ozlabs.org Date: Wed, 28 Jun 2017 13:46:25 +0200 Message-Id: <1498650385-17478-1-git-send-email-thuth@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Wed, 28 Jun 2017 11:46:26 +0000 (UTC) Subject: [SLOF] [PATCH] libnet/tftp: Allow loading to address 0 X-BeenThere: slof@lists.ozlabs.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Patches for https://github.com/aik/SLOF" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: slof-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org Sender: "SLOF" It's theoretically possible to load a file to address 0, too, so we should use a different marker than NULL to check for a valid buffer. Signed-off-by: Thomas Huth --- lib/libnet/tftp.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/libnet/tftp.c b/lib/libnet/tftp.c index d0c2f13..ab63578 100644 --- a/lib/libnet/tftp.c +++ b/lib/libnet/tftp.c @@ -26,6 +26,7 @@ #define MAX_BLOCKSIZE 1428 #define BUFFER_LEN 256 +#define INVALID_BUFFER ((void *)-1L) #define ENOTFOUND 1 #define EACCESS 2 @@ -45,7 +46,7 @@ /* Local variables */ static unsigned char packet[BUFFER_LEN]; -static unsigned char *buffer = NULL; +static unsigned char *buffer = INVALID_BUFFER; static unsigned short block; static unsigned short blocksize; static char blocksize_str[6]; /* Blocksize string for read request */ @@ -337,7 +338,7 @@ int32_t handle_tftp(int fd, uint8_t *pkt, int32_t packetsize) struct tftphdr *tftp; /* buffer is only set if we are handling TFTP */ - if (buffer == NULL ) + if (buffer == INVALID_BUFFER) return 0; #ifndef __DEBUG__ @@ -536,7 +537,7 @@ int tftp(filename_ip_t * _fn_ip, unsigned char *_buffer, int _len, printf(" Receiving data: "); print_progress(-1, 0); - // Setting buffer to a non-zero address enabled handling of received TFTP packets. + /* Set buffer to a valid address, enables handling of received packets */ buffer = _buffer; set_timer(TICKS_SEC); @@ -579,8 +580,8 @@ int tftp(filename_ip_t * _fn_ip, unsigned char *_buffer, int _len, } } - // Setting buffer to NULL disables handling of received TFTP packets. - buffer = NULL; + /* Setting buffer invalid to disable handling of received packets */ + buffer = INVALID_BUFFER; if (tftp_errno) return tftp_errno;