Mailing List Archive

[Bug 2921] fix compilation --with-ssl-engine
https://bugzilla.mindrot.org/show_bug.cgi?id=2921

Ahmed Sayeed <ahmedsayeed1982@yahoo.com> changed:

What |Removed |Added
----------------------------------------------------------------------------
CC| |ahmedsayeed1982@yahoo.com

--- Comment #5 from Ahmed Sayeed <ahmedsayeed1982@yahoo.com> ---
$ cat test.c
struct foo {
int len; https://www.webb-dev.co.uk/category/computers/
int items[];
};

struct foo *p;
http://www.compilatori.com/category/technology/
int main() {
return 0;
}
$ gcc test.c -g -O0 -o test
http://www.acpirateradio.co.uk/category/computers/
$ ./gdb -q -nx --data-directory=data-directory ./test -ex
'python gdb.parse_and_eval("p").type.target()["items"].type.range()'
Reading symbols from ./test...
http://www-look-4.com/category/computers/
/home/simark/src/binutils-gdb/gdb/gdbtypes.h:435:
internal-error: LONGEST dynamic_prop::const_val() const: Assertion
`m_kind == PROP_CONST' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Quit this debugging session? (y or n)
http://www.logoarts.co.uk/category/computers/

This is because the Python code (typy_range) blindly reads the high
bound of the type of `items` as a constant value. Since it is a
http://www.iu-bloomington.com/category/computers/
flexible array member, it has no high bound, the property is
undefined.
Since commit 8c2e4e0689
https://komiya-dental.com/category/computers/ ("gdb: add accessors to
struct dynamic_prop"),
the getters check that you are not getting a property value of the
wrong
kind, so this causes a failed assertion.
http://www.slipstone.co.uk/category/computers/

Fix it by checking if the property is indeed a constant value
before http://embermanchester.uk/category/computers/
accessing it as such. Otherwise, use 0. This restores the
previous GDB
behavior: because the structure was zero-initialized,
http://connstr.net/category/computers/ this is what was
returned before. But now this behavior is explicit and not
accidental.
http://joerg.li/category/computers/
Add a test, gdb.python/flexible-array-member.exp, that is derived
from
gdb.base/flexible-array-member.exp.
http://www.jopspeech.com/category/computers/ It tests the same things,
but
through the Python API. It also specifically tests getting the
range
from the various kinds
http://www.wearelondonmade.com/category/computers/ of flexible array
member types (AFAIK it wasn't
possible to do the equivalent through the CLI).
https://waytowhatsnext.com/category/computers/

gdb/ChangeLog:

--
You are receiving this mail because:
You are watching the assignee of the bug.
You are watching someone on the CC list of the bug.
_______________________________________________
openssh-bugs mailing list
openssh-bugs@mindrot.org
https://lists.mindrot.org/mailman/listinfo/openssh-bugs