From unknown Sun Jun 15 08:39:27 2025 X-Loop: help-debbugs@gnu.org Subject: bug#42673: 26.3; Return value of XGetIMValues not checked in xim_open_dpy (src/xterm.c) Resent-From: Yichao Yu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 02 Aug 2020 13:24:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 42673 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 42673@debbugs.gnu.org Cc: Yichao Yu X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.159637459622296 (code B ref -1); Sun, 02 Aug 2020 13:24:01 +0000 Received: (at submit) by debbugs.gnu.org; 2 Aug 2020 13:23:16 +0000 Received: from localhost ([127.0.0.1]:41967 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k2DxL-0005nX-Hk for submit@debbugs.gnu.org; Sun, 02 Aug 2020 09:23:16 -0400 Received: from lists.gnu.org ([209.51.188.17]:33198) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k2DxK-0005nO-2M for submit@debbugs.gnu.org; Sun, 02 Aug 2020 09:23:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44452) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1k2DxJ-0006hS-TM for bug-gnu-emacs@gnu.org; Sun, 02 Aug 2020 09:23:13 -0400 Received: from mail-lj1-x243.google.com ([2a00:1450:4864:20::243]:35823) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1k2DxE-0005wD-Am for bug-gnu-emacs@gnu.org; Sun, 02 Aug 2020 09:23:13 -0400 Received: by mail-lj1-x243.google.com with SMTP id i10so2153845ljn.2 for ; Sun, 02 Aug 2020 06:23:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to:cc; bh=1HlzhQqn93GxcULkJ1QbZV1aMNcu8orwFA8NiJ4Ft9Y=; b=MXX0BsO0dwNQ9E8+od6xSxsH666+lhUGmE6lElL79v02uZQCYMvXywl4dbQW2V2BWs uA5sYYI+cweY871b8u+6EorJWcdkllNIuu08nF6yAuXjnXeplDG4ApWcTVGgrUCaEArc xzxGGX4dQl0CdARJAsqfESLltgTfmjCbI55uIA1VwPPOoZ5OCUVQ7hRinRFCqAn7RP87 z9/vu21MOJWkDQzgzPXM8M7jX8DvFKQiWbIxf1/30WO605P2KFgOwtcqLZbSLsvGdhEX 2s48orMUk2kYnyDe4HPOYw8vdR/9yMS3HuMu0pHxJKIqCaTQC3b0Lpp6dFGYVWJe2GTG q8rg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=1HlzhQqn93GxcULkJ1QbZV1aMNcu8orwFA8NiJ4Ft9Y=; b=R5t6tK05OBKoXgjmRylQWszpoQJQxnCCEcLliHdkjqWxKfGnA715dPi92RNcztK80G iscHMco3WcgXpYpcldwW8fqykla6iumJeCgxRPccKa6IfwUasjM6Af8N4sukIT1m7xcv 3PZ34X4PZ+K8VvI+6ohZYvfe9MOG8c0ZA93uHHq0DSm9T4QMbdC2m7NU5076DV0+mash k6XJxb3DssFOX/gpfGxBZuM1ZgXDfyGEy4120ZRbWEjyIwDWnoobym1jvoTI0Q1nVWON FhnOQ4TXilJBk9L7QFJdlQbEK//1jf/QCa10vp3kIkUXSfJeUcDYaxj+y1NUOk/A8opK zpDw== X-Gm-Message-State: AOAM532BrhXACieNMppMpQlwqG3DFDBK54BL3GKZkjKxod+PvdgOOBMt QRjTLfZQVzXf+4qrqW/F5t/YjoSJuzbfdCqKCS7de5AkwTM= X-Google-Smtp-Source: ABdhPJzVCEPZMeMRIPnWEaQShH0lO0tJWLaysag4EjvK90DUn0H4vSh1H1VKQGlqTKScZqtpaAcp83s5gP4lyA4ePF8= X-Received: by 2002:a2e:96cb:: with SMTP id d11mr5158732ljj.239.1596374584982; Sun, 02 Aug 2020 06:23:04 -0700 (PDT) MIME-Version: 1.0 From: Yichao Yu Date: Sun, 2 Aug 2020 09:22:53 -0400 Message-ID: Content-Type: text/plain; charset="UTF-8" Received-SPF: pass client-ip=2a00:1450:4864:20::243; envelope-from=yyc1992@gmail.com; helo=mail-lj1-x243.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -0.1 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.1 (--) The call in question is at https://git.savannah.gnu.org/cgit/emacs.git/tree/src/xterm.c?id=9fe2bdb88a4ebd4b2286c1c2a2a2ba7411af01b6#n10316 Since the return value isn't checked, a failure to initialize here can cause `dpyinfo->xim_styles` to be `NULL` which intern cause readers like https://git.savannah.gnu.org/cgit/emacs.git/tree/src/xfns.c?id=9fe2bdb88a4ebd4b2286c1c2a2a2ba7411af01b6#n2659 to pass a `NULL` pointer to `best_xim_style` and crash. The fix is to check if the return value of `XGetIMValues` is not `NULL` and if it is not `NULL`, disable XIM. It currently triggers due to https://gitlab.freedesktop.org/xorg/lib/libx11/-/issues/116 but this function can also fail for other reasons including bugs on the input method side. It's not guaranteed to success and a failure in this function should not cause emacs itself to crash... In GNU Emacs 26.3 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.21) of 2020-07-29 built on yyc.yyc-arch.org Repository revision: d9eea1ad1bca16406a6d4c9bd0daa57a9d0a531f System Description: Arch Linux Recent messages: For information about GNU Emacs and the GNU system, type C-h C-a. user-error: Beginning of history; no preceding item [2 times] Making completion list... Quit C-x C-g is undefined Configured using: 'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib --localstatedir=/var --with-x-toolkit=gtk3 --with-xft --with-wide-int --with-modules 'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -g -fvar-tracking-assignments -fdebug-prefix-map=/home/yuyichao/projects/arch-pkg/pkg/tmp/emacs/repos/extra-x86_64/src=/usr/src/debug -ggdb3 -O0 -DDEBUG_XIC_FONTSET=1' CPPFLAGS=-D_FORTIFY_SOURCE=2 LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now' Configured features: XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS GLIB NOTIFY ACL GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS LIBSYSTEMD LCMS2 Important settings: value of $LANG: zh_CN.UTF-8 value of $XMODIFIERS: @im=fcitx locale-coding-system: utf-8-unix Major mode: Fundamental Minor modes in effect: tooltip-mode: t global-eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t buffer-read-only: t line-number-mode: t transient-mark-mode: t Load-path shadows: /usr/share/emacs/site-lisp/org/ox hides /usr/share/emacs/26.3/lisp/org/ox /usr/share/emacs/site-lisp/org/ox-texinfo hides /usr/share/emacs/26.3/lisp/org/ox-texinfo /usr/share/emacs/site-lisp/org/ox-publish hides /usr/share/emacs/26.3/lisp/org/ox-publish /usr/share/emacs/site-lisp/org/ox-org hides /usr/share/emacs/26.3/lisp/org/ox-org /usr/share/emacs/site-lisp/org/ox-odt hides /usr/share/emacs/26.3/lisp/org/ox-odt /usr/share/emacs/site-lisp/org/ox-md hides /usr/share/emacs/26.3/lisp/org/ox-md /usr/share/emacs/site-lisp/org/ox-man hides /usr/share/emacs/26.3/lisp/org/ox-man /usr/share/emacs/site-lisp/org/ox-latex hides /usr/share/emacs/26.3/lisp/org/ox-latex /usr/share/emacs/site-lisp/org/ox-icalendar hides /usr/share/emacs/26.3/lisp/org/ox-icalendar /usr/share/emacs/site-lisp/org/ox-html hides /usr/share/emacs/26.3/lisp/org/ox-html /usr/share/emacs/site-lisp/org/ox-beamer hides /usr/share/emacs/26.3/lisp/org/ox-beamer /usr/share/emacs/site-lisp/org/ox-ascii hides /usr/share/emacs/26.3/lisp/org/ox-ascii /usr/share/emacs/site-lisp/org/org hides /usr/share/emacs/26.3/lisp/org/org /usr/share/emacs/site-lisp/org/org-version hides /usr/share/emacs/26.3/lisp/org/org-version /usr/share/emacs/site-lisp/org/org-timer hides /usr/share/emacs/26.3/lisp/org/org-timer /usr/share/emacs/site-lisp/org/org-table hides /usr/share/emacs/26.3/lisp/org/org-table /usr/share/emacs/site-lisp/org/org-src hides /usr/share/emacs/26.3/lisp/org/org-src /usr/share/emacs/site-lisp/org/org-protocol hides /usr/share/emacs/26.3/lisp/org/org-protocol /usr/share/emacs/site-lisp/org/org-plot hides /usr/share/emacs/26.3/lisp/org/org-plot /usr/share/emacs/site-lisp/org/org-pcomplete hides /usr/share/emacs/26.3/lisp/org/org-pcomplete /usr/share/emacs/site-lisp/org/org-mouse hides /usr/share/emacs/26.3/lisp/org/org-mouse /usr/share/emacs/site-lisp/org/org-mobile hides /usr/share/emacs/26.3/lisp/org/org-mobile /usr/share/emacs/site-lisp/org/org-macs hides /usr/share/emacs/26.3/lisp/org/org-macs /usr/share/emacs/site-lisp/org/org-macro hides /usr/share/emacs/26.3/lisp/org/org-macro /usr/share/emacs/site-lisp/org/org-loaddefs hides /usr/share/emacs/26.3/lisp/org/org-loaddefs /usr/share/emacs/site-lisp/org/org-list hides /usr/share/emacs/26.3/lisp/org/org-list /usr/share/emacs/site-lisp/org/org-lint hides /usr/share/emacs/26.3/lisp/org/org-lint /usr/share/emacs/site-lisp/org/org-install hides /usr/share/emacs/26.3/lisp/org/org-install /usr/share/emacs/site-lisp/org/org-inlinetask hides /usr/share/emacs/26.3/lisp/org/org-inlinetask /usr/share/emacs/site-lisp/org/org-indent hides /usr/share/emacs/26.3/lisp/org/org-indent /usr/share/emacs/site-lisp/org/org-id hides /usr/share/emacs/26.3/lisp/org/org-id /usr/share/emacs/site-lisp/org/org-habit hides /usr/share/emacs/26.3/lisp/org/org-habit /usr/share/emacs/site-lisp/org/org-footnote hides /usr/share/emacs/26.3/lisp/org/org-footnote /usr/share/emacs/site-lisp/org/org-feed hides /usr/share/emacs/26.3/lisp/org/org-feed /usr/share/emacs/site-lisp/org/org-faces hides /usr/share/emacs/26.3/lisp/org/org-faces /usr/share/emacs/site-lisp/org/org-entities hides /usr/share/emacs/26.3/lisp/org/org-entities /usr/share/emacs/site-lisp/org/org-element hides /usr/share/emacs/26.3/lisp/org/org-element /usr/share/emacs/site-lisp/org/org-duration hides /usr/share/emacs/26.3/lisp/org/org-duration /usr/share/emacs/site-lisp/org/org-datetree hides /usr/share/emacs/26.3/lisp/org/org-datetree /usr/share/emacs/site-lisp/org/org-ctags hides /usr/share/emacs/26.3/lisp/org/org-ctags /usr/share/emacs/site-lisp/org/org-crypt hides /usr/share/emacs/26.3/lisp/org/org-crypt /usr/share/emacs/site-lisp/org/org-compat hides /usr/share/emacs/26.3/lisp/org/org-compat /usr/share/emacs/site-lisp/org/org-colview hides /usr/share/emacs/26.3/lisp/org/org-colview /usr/share/emacs/site-lisp/org/org-clock hides /usr/share/emacs/26.3/lisp/org/org-clock /usr/share/emacs/site-lisp/org/org-capture hides /usr/share/emacs/26.3/lisp/org/org-capture /usr/share/emacs/site-lisp/org/org-attach hides /usr/share/emacs/26.3/lisp/org/org-attach /usr/share/emacs/site-lisp/org/org-archive hides /usr/share/emacs/26.3/lisp/org/org-archive /usr/share/emacs/site-lisp/org/org-agenda hides /usr/share/emacs/26.3/lisp/org/org-agenda /usr/share/emacs/site-lisp/org/ob hides /usr/share/emacs/26.3/lisp/org/ob /usr/share/emacs/site-lisp/org/ob-vala hides /usr/share/emacs/26.3/lisp/org/ob-vala /usr/share/emacs/site-lisp/org/ob-tangle hides /usr/share/emacs/26.3/lisp/org/ob-tangle /usr/share/emacs/site-lisp/org/ob-table hides /usr/share/emacs/26.3/lisp/org/ob-table /usr/share/emacs/site-lisp/org/ob-stan hides /usr/share/emacs/26.3/lisp/org/ob-stan /usr/share/emacs/site-lisp/org/ob-sqlite hides /usr/share/emacs/26.3/lisp/org/ob-sqlite /usr/share/emacs/site-lisp/org/ob-sql hides /usr/share/emacs/26.3/lisp/org/ob-sql /usr/share/emacs/site-lisp/org/ob-shen hides /usr/share/emacs/26.3/lisp/org/ob-shen /usr/share/emacs/site-lisp/org/ob-shell hides /usr/share/emacs/26.3/lisp/org/ob-shell /usr/share/emacs/site-lisp/org/ob-sed hides /usr/share/emacs/26.3/lisp/org/ob-sed /usr/share/emacs/site-lisp/org/ob-screen hides /usr/share/emacs/26.3/lisp/org/ob-screen /usr/share/emacs/site-lisp/org/ob-scheme hides /usr/share/emacs/26.3/lisp/org/ob-scheme /usr/share/emacs/site-lisp/org/ob-sass hides /usr/share/emacs/26.3/lisp/org/ob-sass /usr/share/emacs/site-lisp/org/ob-ruby hides /usr/share/emacs/26.3/lisp/org/ob-ruby /usr/share/emacs/site-lisp/org/ob-ref hides /usr/share/emacs/26.3/lisp/org/ob-ref /usr/share/emacs/site-lisp/org/ob-python hides /usr/share/emacs/26.3/lisp/org/ob-python /usr/share/emacs/site-lisp/org/ob-processing hides /usr/share/emacs/26.3/lisp/org/ob-processing /usr/share/emacs/site-lisp/org/ob-plantuml hides /usr/share/emacs/26.3/lisp/org/ob-plantuml /usr/share/emacs/site-lisp/org/ob-picolisp hides /usr/share/emacs/26.3/lisp/org/ob-picolisp /usr/share/emacs/site-lisp/org/ob-perl hides /usr/share/emacs/26.3/lisp/org/ob-perl /usr/share/emacs/site-lisp/org/ob-org hides /usr/share/emacs/26.3/lisp/org/ob-org /usr/share/emacs/site-lisp/org/ob-octave hides /usr/share/emacs/26.3/lisp/org/ob-octave /usr/share/emacs/site-lisp/org/ob-ocaml hides /usr/share/emacs/26.3/lisp/org/ob-ocaml /usr/share/emacs/site-lisp/org/ob-mscgen hides /usr/share/emacs/26.3/lisp/org/ob-mscgen /usr/share/emacs/site-lisp/org/ob-maxima hides /usr/share/emacs/26.3/lisp/org/ob-maxima /usr/share/emacs/site-lisp/org/ob-matlab hides /usr/share/emacs/26.3/lisp/org/ob-matlab /usr/share/emacs/site-lisp/org/ob-makefile hides /usr/share/emacs/26.3/lisp/org/ob-makefile /usr/share/emacs/site-lisp/org/ob-lua hides /usr/share/emacs/26.3/lisp/org/ob-lua /usr/share/emacs/site-lisp/org/ob-lob hides /usr/share/emacs/26.3/lisp/org/ob-lob /usr/share/emacs/site-lisp/org/ob-lisp hides /usr/share/emacs/26.3/lisp/org/ob-lisp /usr/share/emacs/site-lisp/org/ob-lilypond hides /usr/share/emacs/26.3/lisp/org/ob-lilypond /usr/share/emacs/site-lisp/org/ob-ledger hides /usr/share/emacs/26.3/lisp/org/ob-ledger /usr/share/emacs/site-lisp/org/ob-latex hides /usr/share/emacs/26.3/lisp/org/ob-latex /usr/share/emacs/site-lisp/org/ob-js hides /usr/share/emacs/26.3/lisp/org/ob-js /usr/share/emacs/site-lisp/org/ob-java hides /usr/share/emacs/26.3/lisp/org/ob-java /usr/share/emacs/site-lisp/org/ob-io hides /usr/share/emacs/26.3/lisp/org/ob-io /usr/share/emacs/site-lisp/org/ob-hledger hides /usr/share/emacs/26.3/lisp/org/ob-hledger /usr/share/emacs/site-lisp/org/ob-haskell hides /usr/share/emacs/26.3/lisp/org/ob-haskell /usr/share/emacs/site-lisp/org/ob-groovy hides /usr/share/emacs/26.3/lisp/org/ob-groovy /usr/share/emacs/site-lisp/org/ob-gnuplot hides /usr/share/emacs/26.3/lisp/org/ob-gnuplot /usr/share/emacs/site-lisp/org/ob-fortran hides /usr/share/emacs/26.3/lisp/org/ob-fortran /usr/share/emacs/site-lisp/org/ob-forth hides /usr/share/emacs/26.3/lisp/org/ob-forth /usr/share/emacs/site-lisp/org/ob-exp hides /usr/share/emacs/26.3/lisp/org/ob-exp /usr/share/emacs/site-lisp/org/ob-eval hides /usr/share/emacs/26.3/lisp/org/ob-eval /usr/share/emacs/site-lisp/org/ob-emacs-lisp hides /usr/share/emacs/26.3/lisp/org/ob-emacs-lisp /usr/share/emacs/site-lisp/org/ob-ebnf hides /usr/share/emacs/26.3/lisp/org/ob-ebnf /usr/share/emacs/site-lisp/org/ob-dot hides /usr/share/emacs/26.3/lisp/org/ob-dot /usr/share/emacs/site-lisp/org/ob-ditaa hides /usr/share/emacs/26.3/lisp/org/ob-ditaa /usr/share/emacs/site-lisp/org/ob-css hides /usr/share/emacs/26.3/lisp/org/ob-css /usr/share/emacs/site-lisp/org/ob-core hides /usr/share/emacs/26.3/lisp/org/ob-core /usr/share/emacs/site-lisp/org/ob-coq hides /usr/share/emacs/26.3/lisp/org/ob-coq /usr/share/emacs/site-lisp/org/ob-comint hides /usr/share/emacs/26.3/lisp/org/ob-comint /usr/share/emacs/site-lisp/org/ob-clojure hides /usr/share/emacs/26.3/lisp/org/ob-clojure /usr/share/emacs/site-lisp/org/ob-calc hides /usr/share/emacs/26.3/lisp/org/ob-calc /usr/share/emacs/site-lisp/org/ob-awk hides /usr/share/emacs/26.3/lisp/org/ob-awk /usr/share/emacs/site-lisp/org/ob-asymptote hides /usr/share/emacs/26.3/lisp/org/ob-asymptote /usr/share/emacs/site-lisp/org/ob-abc hides /usr/share/emacs/26.3/lisp/org/ob-abc /usr/share/emacs/site-lisp/org/ob-R hides /usr/share/emacs/26.3/lisp/org/ob-R /usr/share/emacs/site-lisp/org/ob-J hides /usr/share/emacs/26.3/lisp/org/ob-J /usr/share/emacs/site-lisp/org/ob-C hides /usr/share/emacs/26.3/lisp/org/ob-C Features: (shadow sort mail-extr emacsbug message rmc puny seq byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib dired dired-loaddefs format-spec rfc822 mml easymenu mml-sec password-cache epa derived epg epg-config gnus-util rmail rmail-loaddefs mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils term/xterm xterm time-date elec-pair mule-util china-util tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote threads dbusbind inotify lcms2 dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 100499 7255) (symbols 48 20515 1) (miscs 40 76 80) (strings 32 28738 1115) (string-bytes 1 750466) (vectors 16 13058) (vector-slots 8 514211 18624) (floats 8 54 337) (intervals 56 232 0) (buffers 992 13)) From unknown Sun Jun 15 08:39:27 2025 X-Loop: help-debbugs@gnu.org Subject: bug#42673: 26.3; Return value of XGetIMValues not checked in xim_open_dpy (src/xterm.c) Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 02 Aug 2020 17:25:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 42673 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Yichao Yu Cc: 42673@debbugs.gnu.org Received: via spool by 42673-submit@debbugs.gnu.org id=B42673.159638904230418 (code B ref 42673); Sun, 02 Aug 2020 17:25:02 +0000 Received: (at 42673) by debbugs.gnu.org; 2 Aug 2020 17:24:02 +0000 Received: from localhost ([127.0.0.1]:43321 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k2HiM-0007uQ-0a for submit@debbugs.gnu.org; Sun, 02 Aug 2020 13:24:02 -0400 Received: from eggs.gnu.org ([209.51.188.92]:53584) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k2HiJ-0007u2-E0; Sun, 02 Aug 2020 13:24:00 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:53495) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1k2HiD-0004MR-Gy; Sun, 02 Aug 2020 13:23:53 -0400 Received: from [176.228.60.248] (port=4723 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1k2HiD-0002Fc-0f; Sun, 02 Aug 2020 13:23:53 -0400 Date: Sun, 02 Aug 2020 20:23:36 +0300 Message-Id: <83o8ntarmv.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: (message from Yichao Yu on Sun, 2 Aug 2020 09:22:53 -0400) References: X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) merge 42673 42676 42677 thanks > From: Yichao Yu > Date: Sun, 2 Aug 2020 09:22:53 -0400 > Cc: Yichao Yu > > The call in question is at > https://git.savannah.gnu.org/cgit/emacs.git/tree/src/xterm.c?id=9fe2bdb88a4ebd4b2286c1c2a2a2ba7411af01b6#n10316 > Since the return value isn't checked, a failure to initialize here can > cause `dpyinfo->xim_styles` to be `NULL` which intern cause readers > like https://git.savannah.gnu.org/cgit/emacs.git/tree/src/xfns.c?id=9fe2bdb88a4ebd4b2286c1c2a2a2ba7411af01b6#n2659 > to pass a `NULL` pointer to `best_xim_style` and crash. > > The fix is to check if the return value of `XGetIMValues` is not > `NULL` and if it is not `NULL`, disable XIM. Thanks, other people also reported this, so this is now fixed on the emacs-27 branch.