1
0
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:
Paul Eggert 2022-05-27 11:44:34 -07:00
parent cb57db513b
commit eb37e4814e

View File

@ -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;