sdpscanner: fix format strings for (u)int64_t
This probably only worked on Little-Endian machines, but it's UB there, too, of course. Wasn't detected by the compiler because qsnprintf() doen't have __attribute__(printf), for some reason. Prepare the folded part of the line so a follow-up port to std::snprintf() doesn't have to re-indent it. Amends3ee0be1013. [ChangeLog][QtBluetooth][sdpscanner] Fixed a bug involving broken serialization of SDP_(U)INT64 DTDs on Big-Endian machines. Change-Id: Ib4e24007cf498814f3c91b5a57e7dfd6a311926c Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commitfcee2074e1) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit39e673bbb6) (cherry picked from commitee65dbc0b9) (cherry picked from commit0a24a7eeb5) (cherry picked from commit19be33ef5a)
This commit is contained in:
parent
875ff1879d
commit
071e67f423
|
|
@ -96,7 +96,8 @@ static void parseAttributeValues(sdp_data_t *data, int indentation, QByteArray &
|
|||
xmlOutput.append(snBuffer);
|
||||
break;
|
||||
case SDP_UINT64:
|
||||
qsnprintf(snBuffer, BUFFER_SIZE, "<uint64 value=\"0x%016x\"/>\n", data->val.uint64);
|
||||
qsnprintf(snBuffer, BUFFER_SIZE, "<uint64 value=\"0x%016llx\"/>\n",
|
||||
qulonglong(data->val.uint64));
|
||||
xmlOutput.append(snBuffer);
|
||||
break;
|
||||
case SDP_UINT128:
|
||||
|
|
@ -119,7 +120,8 @@ static void parseAttributeValues(sdp_data_t *data, int indentation, QByteArray &
|
|||
xmlOutput.append(snBuffer);
|
||||
break;
|
||||
case SDP_INT64:
|
||||
qsnprintf(snBuffer, BUFFER_SIZE, "<int64 value=\"%d\"/>/n", data->val.int64);
|
||||
qsnprintf(snBuffer, BUFFER_SIZE, "<int64 value=\"%lld\"/>/n",
|
||||
qlonglong(data->val.int64));
|
||||
xmlOutput.append(snBuffer);
|
||||
break;
|
||||
case SDP_INT128:
|
||||
|
|
|
|||
Loading…
Reference in New Issue