According to 3GPP TS 44.018 section 10.5.2.20, the Measurement Results
is a type 3 (TV) information element with 17 (1 + 16) octets length.
The respective dissection function is called as follows:
ELEM_MAND_V(GSM_A_PDU_TYPE_RR, DE_RR_MEAS_RES, ...)
elem_v(tvb, tree, pinfo, GSM_A_PDU_TYPE_RR, DE_RR_MEAS_RES, ...)
de_rr_meas_res(tvb, subtree, pinfo, curr_offset, -1, ...)
^^^
len
Note that elem_v() passes -1 as the len argument to de_rr_meas_res().
The later returns -1 casted to guint, and this is indeed wrong.
Moreover, the 'len' argument is marked as unused (_U_).
This bug creates a false impression that the Measurement Results IE
occupies more octets than it actually does when it's encapsulated
into some other protocol, e.g. A-bis/RSL.
Let's return value 16, which is known from the specs.
This way we can also use this function for checking padding in
the Measurement Results IE, which uses 0x00 as padding pattern.
Drop the '_csn' part because it's not CSN.1 specific anymore.
When running the profiles dialog from the main status bar,
some objects appear to be not cleaned up properly with Qt 6.
This will circumvent this, by creating an object for the
dialog and cleaning it on closing.
Fixes#18525
The context menu falsely assigns the proxied index to the context menu
entries, therefore always selecting the wrong model index for the
resulting functions.
Fixes #18xxx
should be { 0x6, "NB 24.4 kbps" } instead of the current { 0x6, "Not used" }
According to Table A.3 of 3gpp TS 26445
Reported by Massimiliano Agnoletti
Close: #18550
Functions that copy into a fixed sized buffer, like
vnsprintf and g_strlcat can truncate UTF-8 strings in
the middle of a character. Check for that with vnsprintf,
and replace some g_strlcat calls in the column utils with
ws_label_strcpy.
Fix#18554
Instead of formatting into a fixed-length buffer a string that's empty
if the timezone name is not to be shown and is a space followed by the
timezone name if it is to be shown, just pass to snprint_abs_time_secs()
both a separator string and a timezone name string, with both being
empty strings if the timezone name is not to be shown, and with the
first being " " and the second being the timezone name if the timezone
name is to be shown, with the separator printed before the timezone
name.
That way, we don't have to worry about how big the buffer needs to be.
Qt5's QFont::fromString() isn't compatible with Qt6's QFont::toString().
If we were built with Qt5, don't try to process a font preference that
was created by Qt6.
Fixes#18553
1) In English-language menus, menu item text should use title case, with
most words capitalized. (I leave it to the Transifexors to capitalize
appropriately for other languages.)
2) Menu items that pop up dialogs should have "..." at the end of the
text.
The minimum and maximum length arguments to
dissect_per_constrained_set_of() are currently both ints.
According to O-RAN.WG3.E2AP-v02.03, section 9.3.7 "Constant
definitions", maxofRICrequestID is 1024, not 2^32-1; however, we were
specifying it as 2^32-1 (4294967295).
2^32-1 won't fit into an int, and Apple clang version 14.0.0
(clang-1400.0.29.102) warns about that:
./asn1/e2ap/e2ap.cnf:647:54: error: implicit conversion from 'long' to 'int' changes value from 4294967295 to -1 [-Werror,-Wconstant-conversion]
1, maxofRICrequestID, FALSE);
^~~~~~~~~~~~~~~~~
./asn1/e2ap/packet-e2ap-val.h:7:40: note: expanded from macro 'maxofRICrequestID'
#define maxofRICrequestID 4294967295
^~~~~~~~~~
The handling of MIN and MAX should be done with separate "minimum is
MIN" and "maximum is MAX" flags, and we might want either to have
asn2wrs.py reject attempts to have constraints with integer minimum and
maximum values outside the range [-2^31, 2^31-1], make the types for
sizes unsigned, or allow 64-bit constraints (and still limit the
constraint values, so we don't have to dive down a bignum rathole).
But, for now, we just change maxofRICrequestID to match what the 2022-10
version of the spec, 2.03, appears to say.
(I can't find the 2.01 version online, so I don't know whether it was
1024 in 2.01, or if it was changed in 2.02 or 2.03.)
Unless there is no available space, ensure that the label_str
passed into ws_label_strcpy is null terminated, in the cases
where the string to copy is the empty string, or begins with
invalid UTF-8.
Fix#18560. Fix#18551.
The ftype itself is encoding agnostic. In the case of literal
display filter strings it is possible and legal to contain
invalid UTF-8.
Maybe it shouldn't be but that requires a user-friendly diagnostic
message, not silently sanitizing the string as is done currently
(only a debug message is printed in that case).
Do the debug checks in proto_tree_set_string() instead. That
still detects dissector code that might need fixing, which was
the purpose for this check.
Improve documentation and add admonition for proto_tree_add_string().
Ping #18521.
Format the input for display, by escaping some non printable characters,
using ws_label_strcpy().
In some cases with vsnprintf() this requires using a temporary buffer.
Add some debug checks for invalid UTF-8 errors.
The intention here is to pass dissection data directly to the column
API, and the column functions are responsible for formatting that
data for display. This avoids having to call format_text() before
adding a string to a column and separates the concerns better.
Display formatting is an UI concern.
Fix some unnecessary string truncations that look bogus to me.
Forcing a given UTF-8 byte length for no reason will in most cases
produce encoding errors.
Fixes#18548.