diff --git a/libi2pd/NTCP2.cpp b/libi2pd/NTCP2.cpp
index 31f3c999..14e5e333 100644
--- a/libi2pd/NTCP2.cpp
+++ b/libi2pd/NTCP2.cpp
@@ -276,6 +276,11 @@ namespace transport
 				paddingLen = bufbe16toh (options + 2);
 				m_SessionRequestBufferLen = paddingLen + 64;
 				m3p2Len = bufbe16toh (options + 4);
+				if (m3p2Len < 16)
+				{
+					LogPrint (eLogWarning, "NTCP2: SessionRequest m3p2len=", m3p2Len, " is too short");
+					return false;	
+				}	
 				// check timestamp
 				auto ts = i2p::util::GetSecondsSinceEpoch ();
 				uint32_t tsA = bufbe32toh (options + 8); 	
@@ -944,7 +949,7 @@ namespace transport
 			payload[s] = eNTCP2BlkPadding; // blk
 			htobe16buf (payload + s + 1, paddingSize); // size
 			s += 3;
-			RAND_bytes (payload + s, paddingSize);			
+			memset (payload + s, 0, paddingSize);			
 			s += paddingSize;
 			// send
 			SendNextFrame (payload, s);