From: Po Lu Date: Mon, 5 Sep 2022 01:51:05 +0000 (+0800) Subject: Fix crash while converting empty vector to X data X-Git-Tag: emacs-29.0.90~1856^2~718 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=21c8a9d944b37e431f56738c10a9fa7a75f4c3a9;p=emacs.git Fix crash while converting empty vector to X data * src/xselect.c (lisp_data_to_selection_data): Assume an empty vector represents INTEGER data, instead of blindly trying to aref it's first element. --- diff --git a/src/xselect.c b/src/xselect.c index 74d762f3055..66782d41723 100644 --- a/src/xselect.c +++ b/src/xselect.c @@ -2017,7 +2017,17 @@ lisp_data_to_selection_data (struct x_display_info *dpyinfo, ptrdiff_t i; ptrdiff_t size = ASIZE (obj); - if (SYMBOLP (AREF (obj, 0))) + if (!size) + { + /* This vector is empty and of unknown type. Assume that it + is a vector of integers. */ + + cs->data = NULL; + cs->format = 32; + cs->size = 0; + type = QINTEGER; + } + else if (SYMBOLP (AREF (obj, 0))) /* This vector is an ATOM set */ { void *data;