hobbes1069 / rpms / fldigi

Forked from rpms/fldigi 4 years ago
Clone
3a0300b
commit 0a0cf7bafd35cdfb97afa4042a753347ec24bdd1
3a0300b
Author: David Freese <w1hkj@bellsouth.net>
3a0300b
Date:   Wed Jun 5 21:29:01 2019 -0500
3a0300b
3a0300b
    xmlrpc <vector>
3a0300b
    
3a0300b
     * fix for zero length byte vector instantiation
3a0300b
       on Fedora global build
3a0300b
3a0300b
diff --git a/src/network/xmlrpc.cxx b/src/network/xmlrpc.cxx
3a0300b
index bedc1baac..32f1261f3 100644
3a0300b
--- a/src/network/xmlrpc.cxx
3a0300b
+++ b/src/network/xmlrpc.cxx
3a0300b
@@ -2996,8 +2996,9 @@ public:
3a0300b
 			throw f;
3a0300b
 		}
3a0300b
 
3a0300b
-		if (!size) {
3a0300b
-			*retval = xmlrpc_c::value_bytestring("empty rx buffer!");
3a0300b
+		if (size == 0) {
3a0300b
+			*retval = xmlrpc_c::value_bytestring("");
3a0300b
+//			*retval = xmlrpc_c::value_bytestring("empty rx buffer!");
3a0300b
 		} else {
3a0300b
 			vector<unsigned char> bytes(size);
3a0300b
 			memcpy(&bytes[0], text, size);
3a0300b
@@ -3129,10 +3130,14 @@ public:
3a0300b
 		int size;
3a0300b
 		REQ_SYNC(get_rxtx, &text, &size);
3a0300b
 
3a0300b
-		vector<unsigned char> bytes(size);
3a0300b
-		memcpy(&bytes[0], text, size);
3a0300b
+		if (size == 0) {
3a0300b
+			*retval = xmlrpc_c::value_bytestring("");
3a0300b
+		} else {
3a0300b
+			vector<unsigned char> bytes(size);
3a0300b
+			memcpy(&bytes[0], text, size);
3a0300b
+			*retval = xmlrpc_c::value_bytestring(bytes);
3a0300b
+		}
3a0300b
 LOG_VERBOSE("RXTX.get_data: %s", text);
3a0300b
-		*retval = xmlrpc_c::value_bytestring(bytes);
3a0300b
 	}
3a0300b
 };
3a0300b
 
3a0300b
@@ -3159,10 +3164,14 @@ public:
3a0300b
 		int size;
3a0300b
 		REQ_SYNC(get_rx, &text, &size);
3a0300b
 
3a0300b
-		vector<unsigned char> bytes(size);
3a0300b
-		memcpy(&bytes[0], text, size);
3a0300b
+		if (size == 0) {
3a0300b
+			*retval = xmlrpc_c::value_bytestring("");
3a0300b
+		} else {
3a0300b
+			vector<unsigned char> bytes(size);
3a0300b
+			memcpy(&bytes[0], text, size);
3a0300b
+			*retval = xmlrpc_c::value_bytestring(bytes);
3a0300b
+		}
3a0300b
 LOG_VERBOSE("RX.get_data: %s", text);
3a0300b
-		*retval = xmlrpc_c::value_bytestring(bytes);
3a0300b
 	}
3a0300b
 };
3a0300b
 
3a0300b
@@ -3189,10 +3198,14 @@ public:
3a0300b
 		int size;
3a0300b
 		REQ_SYNC(get_tx, &text, &size);
3a0300b
 
3a0300b
-		vector<unsigned char> bytes(size);
3a0300b
-		memcpy(&bytes[0], text, size);
3a0300b
+		if (size == 0) {
3a0300b
+			*retval = xmlrpc_c::value_bytestring("");
3a0300b
+		} else {
3a0300b
+			vector<unsigned char> bytes(size);
3a0300b
+			memcpy(&bytes[0], text, size);
3a0300b
+			*retval = xmlrpc_c::value_bytestring(bytes);
3a0300b
+		}
3a0300b
 LOG_VERBOSE("TX.get_data: %s", text);
3a0300b
-		*retval = xmlrpc_c::value_bytestring(bytes);
3a0300b
 	}
3a0300b
 };
3a0300b