From 07bffd8cd6c89bc2e55124ef424b297834889753 Mon Sep 17 00:00:00 2001
From: Jan Willamowius <jan@willamowius.de>
Date: 周日, 21 4月 2019 23:56:48 +0800
Subject: [PATCH] don't write beyond buffer

---
 test/library/Os_Linux_test.cpp |   16 +++++++++++-----
 1 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/test/library/Os_Linux_test.cpp b/test/library/Os_Linux_test.cpp
index 5d9bd90..f87e3bc 100644
--- a/test/library/Os_Linux_test.cpp
+++ b/test/library/Os_Linux_test.cpp
@@ -21,16 +21,17 @@
 	BOOST_CHECK_GT(strlen(diskInfos[0].device), 0);
 	BOOST_CHECK_GT(strlen(diskInfos[0].label), 0);
 	BOOST_CHECK_GT(diskInfos[0].disk_sn[0], 0);
+	free(diskInfos);
 }
 
 BOOST_AUTO_TEST_CASE( read_network_adapters ) {
-	AdapterInfo * adapter_info = NULL;
+	OsAdapterInfo * adapter_info = NULL;
 	size_t adapter_info_size = 0;
 	FUNCTION_RETURN result = getAdapterInfos(NULL, &adapter_info_size);
 	BOOST_CHECK_EQUAL(result, FUNC_RET_OK);
 	BOOST_CHECK_GT(adapter_info_size, 0);
-	adapter_info = (AdapterInfo*) malloc(
-			sizeof(AdapterInfo) * adapter_info_size);
+	adapter_info = (OsAdapterInfo*) malloc(
+			sizeof(OsAdapterInfo) * adapter_info_size);
 	result = getAdapterInfos(adapter_info, &adapter_info_size);
 	BOOST_CHECK_EQUAL(result, FUNC_RET_OK);
 	for (size_t i = 0; i < adapter_info_size; i++) {
@@ -42,8 +43,13 @@
 		if (string(adapter_info[i].description) == "lo") {
 			BOOST_CHECK_NE(adapter_info[i].ipv4_address[0], 0);
 		} else {
-			BOOST_CHECK_NE(adapter_info[i].mac_address[0], 0);
+			bool mac_is_0 = true;
+			for(int j=0;j<6;j++){
+				mac_is_0 = mac_is_0 && (adapter_info[i].mac_address[j]==0);
+			}
+			BOOST_CHECK_MESSAGE( !mac_is_0,
+					"Mac address for interface " << adapter_info[i].description << " is 0");
 		}
 	}
-
+	free(adapter_info);
 }

--
Gitblit v1.9.1