hobbes1069 / rpms / fldigi

Forked from rpms/fldigi 4 years ago
Clone
Blob Blame History Raw
commit 0a0cf7bafd35cdfb97afa4042a753347ec24bdd1
Author: David Freese <w1hkj@bellsouth.net>
Date:   Wed Jun 5 21:29:01 2019 -0500

    xmlrpc <vector>
    
     * fix for zero length byte vector instantiation
       on Fedora global build

diff --git a/src/network/xmlrpc.cxx b/src/network/xmlrpc.cxx
index bedc1baac..32f1261f3 100644
--- a/src/network/xmlrpc.cxx
+++ b/src/network/xmlrpc.cxx
@@ -2996,8 +2996,9 @@ public:
 			throw f;
 		}
 
-		if (!size) {
-			*retval = xmlrpc_c::value_bytestring("empty rx buffer!");
+		if (size == 0) {
+			*retval = xmlrpc_c::value_bytestring("");
+//			*retval = xmlrpc_c::value_bytestring("empty rx buffer!");
 		} else {
 			vector<unsigned char> bytes(size);
 			memcpy(&bytes[0], text, size);
@@ -3129,10 +3130,14 @@ public:
 		int size;
 		REQ_SYNC(get_rxtx, &text, &size);
 
-		vector<unsigned char> bytes(size);
-		memcpy(&bytes[0], text, size);
+		if (size == 0) {
+			*retval = xmlrpc_c::value_bytestring("");
+		} else {
+			vector<unsigned char> bytes(size);
+			memcpy(&bytes[0], text, size);
+			*retval = xmlrpc_c::value_bytestring(bytes);
+		}
 LOG_VERBOSE("RXTX.get_data: %s", text);
-		*retval = xmlrpc_c::value_bytestring(bytes);
 	}
 };
 
@@ -3159,10 +3164,14 @@ public:
 		int size;
 		REQ_SYNC(get_rx, &text, &size);
 
-		vector<unsigned char> bytes(size);
-		memcpy(&bytes[0], text, size);
+		if (size == 0) {
+			*retval = xmlrpc_c::value_bytestring("");
+		} else {
+			vector<unsigned char> bytes(size);
+			memcpy(&bytes[0], text, size);
+			*retval = xmlrpc_c::value_bytestring(bytes);
+		}
 LOG_VERBOSE("RX.get_data: %s", text);
-		*retval = xmlrpc_c::value_bytestring(bytes);
 	}
 };
 
@@ -3189,10 +3198,14 @@ public:
 		int size;
 		REQ_SYNC(get_tx, &text, &size);
 
-		vector<unsigned char> bytes(size);
-		memcpy(&bytes[0], text, size);
+		if (size == 0) {
+			*retval = xmlrpc_c::value_bytestring("");
+		} else {
+			vector<unsigned char> bytes(size);
+			memcpy(&bytes[0], text, size);
+			*retval = xmlrpc_c::value_bytestring(bytes);
+		}
 LOG_VERBOSE("TX.get_data: %s", text);
-		*retval = xmlrpc_c::value_bytestring(bytes);
 	}
 };