diff options
Diffstat (limited to 'src/tools/sdpscanner/main.cpp')
-rw-r--r-- | src/tools/sdpscanner/main.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/tools/sdpscanner/main.cpp b/src/tools/sdpscanner/main.cpp index 7e09ca6e..690f9aaa 100644 --- a/src/tools/sdpscanner/main.cpp +++ b/src/tools/sdpscanner/main.cpp @@ -159,7 +159,9 @@ static void parseAttributeValues(sdp_data_t *data, int indentation, QByteArray & break; } else if (!isprint(text[i])) { hasNonPrintableChar = true; - text.resize(text.indexOf('\0')); // cut trailing content + const auto firstNullIdx = text.indexOf('\0'); + if (firstNullIdx > 0) + text.resize(firstNullIdx); // cut trailing content break; } } @@ -211,9 +213,8 @@ static void parseAttributeValues(sdp_data_t *data, int indentation, QByteArray & case SDP_URL_STR8: case SDP_URL_STR16: case SDP_URL_STR32: - strncpy(snBuffer, data->val.str, data->unitSize - 1); xmlOutput.append("<url value=\""); - xmlOutput.append(snBuffer); + xmlOutput.append(data->val.str, qstrnlen(data->val.str, data->unitSize)); xmlOutput.append("\"/>\n"); break; default: |