From 37d7f1d40c85c59be72817b8296753608334bf1b Mon Sep 17 00:00:00 2001 From: Jan Henning Date: Sat, 2 Nov 2024 21:07:53 +0100 Subject: [PATCH] Fix alignment for NetShareEnum request handling The missing alignment meant that the info level was being misread if the host name of the server had an even number of characters, because in that case the end of the string ended up not being 4-byte-aligned. This meant that the info level was being misread as e.g. 65536 instead of 1, which had the ultimate result that instead of success and a list of the available shares, an error message would be sent back and the server couldn't be accessed. --- .../java/org/filesys/smb/dcerpc/server/SrvsvcDCEHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/filesys/smb/dcerpc/server/SrvsvcDCEHandler.java b/src/main/java/org/filesys/smb/dcerpc/server/SrvsvcDCEHandler.java index 10feda6..49581c1 100644 --- a/src/main/java/org/filesys/smb/dcerpc/server/SrvsvcDCEHandler.java +++ b/src/main/java/org/filesys/smb/dcerpc/server/SrvsvcDCEHandler.java @@ -140,7 +140,7 @@ protected final boolean netShareEnum(SMBSrvSession sess, DCEBuffer inBuf, DCEBuf try { inBuf.skipPointer(); - srvName = inBuf.getString(); + srvName = inBuf.getString(DCEBuffer.ALIGN_INT); shrInfo = new ShareInfoList(inBuf); } catch (DCEBufferException ex) {