forked from Imagelibrary/binutils-gdb
2010-04-08 Phil Muldoon <pmuldoon@redhat.com>
PR python/11417
* python/py-lazy-string.c (stpy_convert_to_value): Check for
a NULL address.
(gdbpy_create_lazy_string_object): Allow strings with a NULL
address and a zero length.
2010-04-08 Phil Muldoon <pmuldoon@redhat.com>
* gdb.python/py-value: Add null string variable.
(test_lazy_string): Test zero length, NULL address lazy
strings.
This commit is contained in:
@@ -94,6 +94,13 @@ stpy_convert_to_value (PyObject *self, PyObject *args)
|
||||
lazy_string_object *self_string = (lazy_string_object *) self;
|
||||
struct value *val;
|
||||
|
||||
if (self_string->address == 0)
|
||||
{
|
||||
PyErr_SetString (PyExc_MemoryError,
|
||||
"Cannot create a value from NULL");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
val = value_at_lazy (self_string->type, self_string->address);
|
||||
return value_to_value_object (val);
|
||||
}
|
||||
@@ -111,10 +118,11 @@ gdbpy_create_lazy_string_object (CORE_ADDR address, long length,
|
||||
{
|
||||
lazy_string_object *str_obj = NULL;
|
||||
|
||||
if (address == 0)
|
||||
if (address == 0 && length != 0)
|
||||
{
|
||||
PyErr_SetString (PyExc_MemoryError,
|
||||
"Cannot create a lazy string from a GDB-side string.");
|
||||
_("Cannot create a lazy string with address 0x0, " \
|
||||
"and a non-zero length."));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user