--- a/misc/util.cpp
+++ b/misc/util.cpp
@@ -485,7 +519,8 @@ IXML_Element* ixmlAddProperty(IXML_Docum
     char tvalue[UPNP_MAX_METADATA_LENGTH];
     // trim the value to max metadata size
     if(value){
-        strncpy(tvalue, value, UPNP_MAX_METADATA_LENGTH);
+        strncpy(tvalue, value, UPNP_MAX_METADATA_LENGTH - 1);
+        tvalue[UPNP_MAX_METADATA_LENGTH - 1] = '\0';
     }
     
     const char* attribute = att(upnpproperty);
