mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-27 07:37:33 +00:00
Fix unlikely null pointer dereference
* src/xselect.c (Fx_get_atom_name): Fix unlikely core dump when build_string is called on a null pointer. Found by GCC -fanalyzer.
This commit is contained in:
parent
cb57db513b
commit
eb37e4814e
@ -2454,9 +2454,6 @@ If the value is 0 or the atom is not known, return the empty string. */)
|
||||
(Lisp_Object value, Lisp_Object frame)
|
||||
{
|
||||
struct frame *f = decode_window_system_frame (frame);
|
||||
char *name = 0;
|
||||
char empty[] = "";
|
||||
Lisp_Object ret = Qnil;
|
||||
Display *dpy = FRAME_X_DISPLAY (f);
|
||||
struct x_display_info *dpyinfo;
|
||||
Atom atom;
|
||||
@ -2468,17 +2465,16 @@ If the value is 0 or the atom is not known, return the empty string. */)
|
||||
|
||||
block_input ();
|
||||
x_catch_errors (dpy);
|
||||
name = (atom ? x_get_atom_name (dpyinfo, atom,
|
||||
&need_sync) : empty);
|
||||
char *name = atom ? x_get_atom_name (dpyinfo, atom, &need_sync) : NULL;
|
||||
had_errors_p = need_sync && x_had_errors_p (dpy);
|
||||
x_uncatch_errors_after_check ();
|
||||
|
||||
if (!had_errors_p)
|
||||
ret = build_string (name);
|
||||
|
||||
if (atom && name) xfree (name);
|
||||
if (NILP (ret)) ret = empty_unibyte_string;
|
||||
|
||||
Lisp_Object ret = empty_unibyte_string;
|
||||
if (name)
|
||||
{
|
||||
if (!had_errors_p)
|
||||
ret = build_string (name);
|
||||
xfree (name);
|
||||
}
|
||||
unblock_input ();
|
||||
|
||||
return ret;
|
||||
|
Loading…
Reference in New Issue
Block a user