From b5c5630c1ccd675a559dd98dce56d0601f4ab05e Mon Sep 17 00:00:00 2001
From: "Rob Swindell (on Debian Linux)" <rob@synchro.net>
Date: Mon, 8 May 2023 18:08:49 -0700
Subject: [PATCH] More detail in error strings in smb_getmsghdr()

---
 src/smblib/smblib.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/smblib/smblib.c b/src/smblib/smblib.c
index e70fba817e..be73eaf24e 100644
--- a/src/smblib/smblib.c
+++ b/src/smblib/smblib.c
@@ -1058,9 +1058,9 @@ int smb_getmsghdr(smb_t* smb, smbmsg_t* msg)
 		}
 		msg->hfield=vp;
 		if(smb_fread(smb,&msg->hfield[i],sizeof(hfield_t),smb->shd_fp)!=sizeof(hfield_t)) {
-			smb_freemsgmem(msg);
 			safe_snprintf(smb->last_error,sizeof(smb->last_error)
-				,"%s reading header field", __FUNCTION__);
+				,"%s reading header field (#%d)", __FUNCTION__, (int)i);
+			smb_freemsgmem(msg);
 			return(SMB_ERR_READ); 
 		}
 		l+=sizeof(hfield_t);
@@ -1077,9 +1077,9 @@ int smb_getmsghdr(smb_t* smb, smbmsg_t* msg)
 		if(msg->hfield[i].length
 			&& smb_fread(smb,msg->hfield_dat[i],msg->hfield[i].length,smb->shd_fp)
 				!=(size_t)msg->hfield[i].length) {
-			smb_freemsgmem(msg);
 			safe_snprintf(smb->last_error,sizeof(smb->last_error)
-				,"%s reading header field data", __FUNCTION__);
+				,"%s reading header (#%d) field data (%d bytes)", __FUNCTION__, (int)i, (int)msg->hfield[i].length);
+			smb_freemsgmem(msg);
 			return(SMB_ERR_READ); 
 		}
 		set_convenience_ptr(msg,msg->hfield[i].type,msg->hfield[i].length,msg->hfield_dat[i]);
-- 
GitLab