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.
Amends 3ee0be1013.
[ChangeLog][QtBluetooth][sdpscanner] Fixed a bug involving broken
serialization of SDP_(U)INT64 DTDs on Big-Endian machines.
Pick-to: 6.8 6.7 6.5 6.2 5.15
Change-Id: Ib4e24007cf498814f3c91b5a57e7dfd6a311926c
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
f9888436c8
commit
fcee2074e1
|
|
@ -60,7 +60,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:
|
||||
|
|
@ -83,7 +84,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