Skip to content

Commit 00c85cc

Browse files
committed
Guard memcpy with null/length check for DevSkim DS121708
Add explicit null pointer and zero-length guards before memcpy in build_numeric_data to satisfy DevSkim code scanning rule DS121708.
1 parent 8ab074c commit 00c85cc

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

mssql_python/pybind/ddbc_bindings.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -813,7 +813,10 @@ static py::object build_numeric_data(const py::object& decimal_param) {
813813
nd.scale = static_cast<SQLSCHAR>(scale);
814814
nd.sign = (sign_val == 0) ? 1 : 0;
815815
std::memset(&nd.val[0], 0, SQL_MAX_NUMERIC_LEN);
816-
std::memcpy(&nd.val[0], val_str.data(), std::min(val_str.size(), (size_t)SQL_MAX_NUMERIC_LEN));
816+
size_t copy_len = std::min(val_str.size(), static_cast<size_t>(SQL_MAX_NUMERIC_LEN));
817+
if (copy_len > 0 && val_str.data() != nullptr) {
818+
std::memcpy(&nd.val[0], val_str.data(), copy_len);
819+
}
817820

818821
return py::cast(nd);
819822
}

0 commit comments

Comments
 (0)