unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#73337: 29.4; missing dynamic type checking in network-lookup-address-info
@ 2024-09-18 15:07 Jonathan Mitchell
  2024-09-18 15:19 ` Robert Pluim
  0 siblings, 1 reply; 4+ messages in thread
From: Jonathan Mitchell @ 2024-09-18 15:07 UTC (permalink / raw)
  To: 73337

[-- Attachment #1: Type: text/plain, Size: 6752 bytes --]

There is no dynamic type checking of the ‘name’ argument in
‘network-lookup-address-info’, thus causing a crash instead of signaling
a wrong-type-argument error when called with non-string values like
‘(network-lookup-address-info 1)’ or ‘(network-lookup-address-info ’a)’.


In GNU Emacs 29.4 (build 1, x86_64-redhat-linux-gnu, GTK+ Version
 3.24.42, cairo version 1.18.0) of 2024-07-16 built on
 27527c2e06f843c0962737354e0b3cf7
System Description: Fedora Linux 40.20240914.0 (Silverblue)

Configured using:
 'configure --build=x86_64-redhat-linux-gnu
 --host=x86_64-redhat-linux-gnu --program-prefix=
 --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr
 --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc
 --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64
 --libexecdir=/usr/libexec --localstatedir=/var --runstatedir=/run
 --sharedstatedir=/var/lib --mandir=/usr/share/man
 --infodir=/usr/share/info --with-cairo --with-dbus --with-gif
 --with-gpm=no --with-harfbuzz --with-jpeg --with-json --with-modules
 --with-native-compilation=aot --with-pgtk --with-png --with-rsvg
 --with-sqlite3 --with-tiff --with-tree-sitter --with-webp --with-xpm
 --with-xwidgets build_alias=x86_64-redhat-linux-gnu
 host_alias=x86_64-redhat-linux-gnu CC=gcc 'CFLAGS=-DMAIL_USE_LOCKF -O2
 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches
 -pipe -Wall -Werror=format-security
 -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS
 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong
 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64
 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection
 -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer '
 LDFLAGS=-Wl,-z,relro
 PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig CXX=g++
 'CXXFLAGS=-O2 -flto=auto -ffat-lto-objects -fexceptions -g
 -grecord-gcc-switches -pipe -Wall -Werror=format-security
 -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS
 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong
 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64
 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection
 -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ''

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY
PDUMPER PGTK PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM XWIDGETS GTK3 ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  display-line-numbers-mode: t
  vertico-mode: t
  global-corfu-mode: t
  corfu-mode: t
  marginalia-mode: t
  repeat-mode: t
  recentf-mode: t
  pixel-scroll-precision-mode: t
  global-so-long-mode: t
  electric-pair-mode: t
  desktop-save-mode: t
  override-global-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  horizontal-scroll-bar-mode: t
  context-menu-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  auto-save-visited-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr shortdoc net-utils help-fns radix-tree emacsbug
message mailcap yank-media puny dired dired-loaddefs rfc822 mml mml-sec
epa derived epg rfc6068 epg-config gnus-util mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail
rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils mule-util
ibuffer ibuffer-loaddefs comp comp-cstr rx time-date vc-git diff-mode vc
vc-dispatcher bug-reference jkm-fns sqlite display-line-numbers cc-mode
cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars
cc-defs init vertico corfu eglot external-completion array filenotify
jsonrpc ert pp ewoc debug backtrace find-func xref flymake-proc flymake
thingatpt warnings icons compile text-property-search comint ansi-osc
ansi-color pcase url-util url-parse auth-source eieio eieio-core
password-cache json map url-vars project byte-opt imenu orderless
marginalia compat compat-30 edmacro kmacro leuven-theme repeat recentf
tree-widget wid-edit pixel-scroll cua-base ring subr-x so-long elec-pair
desktop frameset cus-load cl-macs gv cl-extra help-mode cl-seq
use-package use-package-ensure use-package-delight use-package-diminish
use-package-bind-key bind-key easy-mmode use-package-core cl-loaddefs
cl-lib bytecomp byte-compile info bash-completion-autoloads
consult-git-log-grep-autoloads consult-ls-git-autoloads corfu-autoloads
debbugs-autoloads embark-consult-autoloads consult-autoloads
embark-autoloads leuven-theme-autoloads marginalia-autoloads
orderless-autoloads osm-autoloads pdf-tools-autoloads pyvenv-autoloads
rust-mode-autoloads tablist-autoloads vertico-autoloads compat-autoloads
rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook
vc-hooks lisp-float-type elisp-mode mwheel term/pgtk-win pgtk-win
term/common-win pgtk-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode lisp-mode prog-mode register
page tab-bar menu-bar rfn-eshadow isearch easymenu timer select
scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors
frame minibuffer nadvice seq simple cl-generic indonesian philippine
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 emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure
cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp
files window text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget keymap hashtable-print-readable backquote
threads xwidget-internal dbusbind inotify dynamic-setting
system-font-setting font-render-setting cairo gtk pgtk multi-tty
make-network-process native-compile emacs)

Memory information:
((conses 16 231270 29521)
 (symbols 48 18116 0)
 (strings 32 58629 2627)
 (string-bytes 1 2394496)
 (vectors 16 34305)
 (vector-slots 8 640740 25613)
 (floats 8 204 66)
 (intervals 56 496 35)
 (buffers 984 11))

[-- Attachment #2: backtrace.txt --]
[-- Type: text/plain, Size: 12090 bytes --]

(gdb) bt full
#0  __strnlen_evex () at ../sysdeps/x86_64/multiarch/strnlen-evex.S:93
No locals.
#1  0x000000000069ecc0 in doprnt (buffer=0x7fffffffc5b0 "Non-ASCII hostname ", bufsize=<optimized out>, format=format@entry=0x72d380 "Non-ASCII hostname %s detected, please use puny-encode-domain", 
    ap=ap@entry=0x7fffffffc530, format_end=<optimized out>) at ../../src/doprnt.c:403
        wid = <optimized out>
        minlen = <optimized out>
        modifier_len = <optimized out>
        v = <optimized out>
        v = <optimized out>
        v = <optimized out>
        v = <optimized out>
        v = <optimized out>
        fmtstar = "%*.*s\000\000\000\000\000"
        minusflag = <optimized out>
        width = <optimized out>
        mlen = 0
        string = <optimized out>
        zeroflag = <optimized out>
        charbuf = "\000\000\001\000\000"
        plusflag = <optimized out>
        spaceflag = <optimized out>
        length_modifier = <optimized out>
        prec = <optimized out>
        size_bound = <optimized out>
        tem = <optimized out>
        fmt0 = <optimized out>
        fmtchar = <optimized out>
        src = <optimized out>
        srclen = <optimized out>
        fmt = 0x72d395 " detected, please use puny-encode-domain"
        bufptr = <optimized out>
        tembuf = '\377' <repeats 28 times>, "\000\000\000\000\320\313\320\000\000\000\000\000\026\000\000\000\000\000\000\000\360\303\377\377\377\177\000\000zy0\356\377\177\000\000\n\000\000\000\000\000\000\000\026\000\000\000\000\000\000\000\352\377\377\377\000\000\000\000\001", '\000' <repeats 19 times>, "\214\001\000\000D\000\000\000@\003\000\000\020\000\200\324\377\177\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\352\377\377\377\000\000\000\000\240\311\377\377\377\177\000\000\220\310\031\001\000\000\000\000\220\310\031\001\000\000\000\000`\304\377\377\377\177\000\000&\003=\367\377\177\000\000\026\000\000\000\000\000\000\000"...
        size_allocated = <optimized out>
        sprintf_buffer = <optimized out>
        big_buffer = 0x0
        quoting_style = 0x51c0
        doit = <optimized out>
        pDlen = pDlen
        pIlen = pDlen
        pMlen = pDlen
        maxmlen = pDlen
        no_modifier = no_modifier
        long_modifier = long_modifier
        pD_modifier = pD_modifier
        pI_modifier = pI_modifier
        pM_modifier = pM_modifier
#2  0x000000000069f43f in doprnt (buffer=<optimized out>, bufsize=<optimized out>, format=0x72d380 "Non-ASCII hostname %s detected, please use puny-encode-domain", format_end=0x0, ap=0x7fffffffc530)
    at ../../src/doprnt.c:189
        size_allocated = <optimized out>
        signed_pD_modifier = <optimized out>
        fmt = <optimized out>
        bufptr = <optimized out>
        tembuf = <optimized out>
        quoting_style = <optimized out>
        doit1 = <optimized out>
        sprintf_buffer = <optimized out>
        big_buffer = <optimized out>
        doit = <optimized out>
        fmt = <optimized out>
        bufptr = <optimized out>
        tembuf = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--c
        size_allocated = <optimized out>
        sprintf_buffer = <optimized out>
        big_buffer = <optimized out>
        quoting_style = <optimized out>
        signed_pD_modifier = <optimized out>
        doit = <optimized out>
        doit1 = <optimized out>
        fmt0 = <optimized out>
        fmtchar = <optimized out>
        src = <optimized out>
        srclen = <optimized out>
        width = <optimized out>
        length_modifier = <optimized out>
        modifier_len = <optimized out>
        mlen = <optimized out>
        charbuf = <optimized out>
        wid = <optimized out>
        prec = <optimized out>
        fmtstar = <optimized out>
        string = <optimized out>
        minusflag = <optimized out>
        plusflag = <optimized out>
        zeroflag = <optimized out>
        spaceflag = <optimized out>
        size_bound = <optimized out>
        minlen = <optimized out>
        tem = <optimized out>
        v = <optimized out>
        v = <optimized out>
        v = <optimized out>
        v = <optimized out>
        v = <optimized out>
        v = <optimized out>
        v = <optimized out>
        v = <optimized out>
        v = <optimized out>
        d = <optimized out>
        chr = <optimized out>
        charlen = <optimized out>
        pDlen = pDlen
        pIlen = pDlen
        pMlen = pDlen
        maxmlen = pDlen
        no_modifier = no_modifier
        long_modifier = long_modifier
        pD_modifier = pD_modifier
        pI_modifier = pI_modifier
        pM_modifier = pM_modifier
#3  evxprintf (buf=0x7fffffffc5a0, bufsize=0x7fffffffc5a8, nonheapbuf=0x7fffffffc5b0 "Non-ASCII hostname ", bufsize_max=2305843009213693952, format=0x72d380 "Non-ASCII hostname %s detected, please use puny-encode-domain", 
    ap=0x7fffffffd590) at ../../src/doprnt.c:590
        nbytes = <optimized out>
        ap_copy = {{gp_offset = 16, fp_offset = 48, overflow_arg_area = 0x7fffffffd670, reg_save_area = 0x7fffffffd5b0}}
#4  0x0000000000614b2c in vformat_string (m=<optimized out>, ap=ap@entry=0x7fffffffd590) at ../../src/eval.c:2075
        buf = "Non-ASCII hostname \000\000\000\000\000\340\305\377\377\377\177\000\000\001\000\000\000 \000\000\000\300\305\377\377\377\177\000\000\000D\000\000\000\214\001\000\000N\000\000\000\242\001\000\000\000\000\000\000\000\000\000\020\306\377\377\377\177\000\000\001\000\000\000 \000\000\000\360\305\377\377\377\177\000\000\000D\000\000\000\214\001\000\000N\000\000\000\242\001", '\000' <repeats 490 times>...
        size = 4000
        size_max = 2305843009213693952
        buffer = 0x7fffffffc5b0 "Non-ASCII hostname "
        used = <optimized out>
        string = <optimized out>
#5  0x000000000046d0c1 in verror (m=<optimized out>, ap=ap@entry=0x7fffffffd590) at ../../src/eval.c:2087
No locals.
#6  0x000000000046d186 in error (m=<optimized out>) at ../../src/eval.c:2098
        ap = {{gp_offset = 8, fp_offset = 48, overflow_arg_area = 0x7fffffffd670, reg_save_area = 0x7fffffffd5b0}}
#7  0x0000000000472362 in network_lookup_address_info_1 (host=0x1676b90, service=service@entry=0x0, hints=hints@entry=0x7fffffffd700, res=res@entry=0x7fffffffd6f8) at ../../src/lisp.h:1679
        msg = 0x30
        ret = <optimized out>
#8  0x0000000000684a2d in Fnetwork_lookup_address_info (name=<optimized out>, family=<optimized out>, hint=<optimized out>) at ../../src/process.c:4737
        addresses = 0x0
        msg = 0x0
        res = 0x120
        lres = <optimized out>
        hints = {ai_flags = 0, ai_family = 0, ai_socktype = 2, ai_protocol = 0, ai_addrlen = 0, ai_addr = 0x0, ai_canonname = 0x0, ai_next = 0x0}
#9  0x000000000061a6c2 in eval_sub (form=form@entry=0x23b4893) at ../../src/eval.c:2508
        i = <optimized out>
        maxargs = <optimized out>
        args_left = <optimized out>
        numargs = 1
        original_fun = <optimized out>
        original_args = 0x23b48c3
        count = <optimized out>
        fun = <optimized out>
        val = <optimized out>
        funcar = <optimized out>
        argvals = {0x1676b90, 0x0, 0x0, 0x0, 0x0, 0xa2c0, 0x7fffffffd820, 0x620cd1 <unbind_to+609>}
        retry = <optimized out>
#10 0x000000000061c10d in Feval (form=0x23b4893, lexical=<optimized out>) at ../../src/eval.c:2365
        count = <optimized out>
#11 0x00007fffe976d1dc in F6576616c2d65787072657373696f6e_eval_expression_0 () from /usr/bin/../lib64/emacs/29.4/native-lisp/29.4-95d1479c/preloaded/simple-fab5b0cf-7c10fc4e.eln
No symbol table info available.
#12 0x0000000000624ead in Ffuncall (nargs=5, args=0x7fffffffd968) at ../../src/eval.c:2999
        count = <optimized out>
        val = <optimized out>
#13 0x0000000000613fdb in Ffuncall_interactively (nargs=5, args=0x7fffffffd968) at ../../src/callint.c:250
        speccount = <optimized out>
#14 0x0000000000624ead in Ffuncall (nargs=nargs@entry=6, args=0x7fffffffd960) at ../../src/eval.c:2999
        count = <optimized out>
        val = <optimized out>
#15 0x00000000006255c0 in Fapply (nargs=3, args=0x7fffffffdb00) at ../../src/eval.c:2670
        i = <optimized out>
        funcall_nargs = 6
        funcall_args = <optimized out>
        spread_arg = 0x0
        fun = <optimized out>
        sa_avail = <optimized out>
        sa_count = <optimized out>
        numargs = <optimized out>
        retval = <optimized out>
#16 0x000000000061c545 in Fcall_interactively (function=0x7fffe74a6b90, record_flag=0x0, keys=0x7fffe854d575) at ../../src/callint.c:342
        funval = <optimized out>
        events = <optimized out>
        speccount = {bytes = 160}
        arg_from_tty = false
        key_count = 1
        record_then_fail = false
        save_this_command = 0x7fffe74a6b90
        save_this_original_command = 0x7fffe74a6b90
        save_real_this_command = 0x7fffe74a6b90
        save_last_command = 0x0
        prefix_arg = 0x0
        enable = <optimized out>
        up_event = 0x0
        form = <optimized out>
        specs = 0x23b4913
        sa_avail = <optimized out>
        sa_count = <optimized out>
        string_len = <optimized out>
        string = <optimized out>
        string_end = <optimized out>
        next_event = <optimized out>
        nargs = <optimized out>
        args = <optimized out>
        visargs = <optimized out>
        varies = <optimized out>
        tem = <optimized out>
        val = <optimized out>
#17 0x00007fffe9771775 in F636f6d6d616e642d65786563757465_command_execute_0 () from /usr/bin/../lib64/emacs/29.4/native-lisp/29.4-95d1479c/preloaded/simple-fab5b0cf-7c10fc4e.eln
No symbol table info available.
#18 0x0000000000624ead in Ffuncall (nargs=2, args=0x7fffffffdcf0) at ../../src/eval.c:2999
        count = <optimized out>
        val = <optimized out>
#19 0x000000000057636e in call1 (fn=0x49e0, arg1=<optimized out>) at ../../src/lisp.h:3248
No locals.
#20 command_loop_1 () at ../../src/keyboard.c:1503
        scount = <optimized out>
        cmd = <optimized out>
        keybuf = {0x200000ea, 0xcb1480 <freloc.lto_priv>, 0x7fffe72b8160, 0xdcfb43, 0x1fae294, 0xdcfb43, 0x10ec0, 0x7fffe8436f3c, 0x7fffe8436f3c, 0x10ec0, 0x30, 0x7fffe7e2b4fd, 0x7fffe7e2b4fd, 0x7fffffffde40, 0x0, 0x80, 
          0x0, 0x61a56e <eval_sub+2094>, 0x0, 0xeea990, 0x0, 0x591f454a85d1f600, 0x11, 0x746f2c, 0x60, 0x30, 0x0, 0x95d0, 0x7fffffffde60, 0x620cd1 <unbind_to+609>}
        i = <optimized out>
        count = <optimized out>
        prev_modiff = 410
        prev_buffer = 0x201a280
#21 0x00000000006131ce in internal_condition_case (bfun=0x575f70 <command_loop_1>, handlers=<optimized out>, hfun=0x575420 <cmd_error>) at ../../src/eval.c:1474
        val = <optimized out>
        c = 0xeea990
#22 0x000000000057569e in command_loop_2 (handlers=handlers@entry=0x90) at ../../src/keyboard.c:1133
        val = <optimized out>
#23 0x0000000000613127 in internal_catch (tag=<optimized out>, func=0x575660 <command_loop_2>, arg=0x90) at ../../src/eval.c:1197
        val = <optimized out>
        c = 0xeea860
#24 0x0000000000575af3 in command_loop () at ../../src/keyboard.c:1111
No locals.
#25 0x0000000000575bef in recursive_edit_1 () at ../../src/keyboard.c:720
        count = <optimized out>
        val = <optimized out>
#26 0x0000000000575ddd in Frecursive_edit () at ../../src/keyboard.c:803
        count = <optimized out>
        buffer = <optimized out>
#27 0x00000000004795a9 in main (argc=<optimized out>, argv=0x7fffffffe1f8) at ../../src/emacs.c:2521
        stack_bottom_variable = 0x7fffffffdfe0
        no_loadup = false
        junk = 0x0
        dname_arg = 0x0
        ch_to_dir = 0x0
        original_pwd = <optimized out>
        dump_mode = <optimized out>
        skip_args = 0
        temacs = 0x0
        attempt_load_pdump = <optimized out>
        only_version = false
        rlim = {rlim_cur = 10022912, rlim_max = 18446744073709551615}
        lc_all = <optimized out>
        sockfd = -1
        module_assertions = <optimized out>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#73337: 29.4; missing dynamic type checking in network-lookup-address-info
  2024-09-18 15:07 bug#73337: 29.4; missing dynamic type checking in network-lookup-address-info Jonathan Mitchell
@ 2024-09-18 15:19 ` Robert Pluim
  2024-09-18 16:05   ` Eli Zaretskii
  0 siblings, 1 reply; 4+ messages in thread
From: Robert Pluim @ 2024-09-18 15:19 UTC (permalink / raw)
  To: Jonathan Mitchell; +Cc: 73337, Eli Zaretskii

>>>>> On Wed, 18 Sep 2024 10:07:25 -0500, Jonathan Mitchell <mitchell.jkyle@gmail.com> said:

    Jonathan> There is no dynamic type checking of the ‘name’ argument in
    Jonathan> ‘network-lookup-address-info’, thus causing a crash instead of signaling
    Jonathan> a wrong-type-argument error when called with non-string values like
    Jonathan> ‘(network-lookup-address-info 1)’ or ‘(network-lookup-address-info ’a)’.

Yep. Eli, emacs-30?

diff --git a/src/process.c b/src/process.c
index 557bdfc918c..216cf916e34 100644
--- a/src/process.c
+++ b/src/process.c
@@ -4729,6 +4729,8 @@ DEFUN ("network-lookup-address-info", Fnetwork_lookup_address_info,
   struct addrinfo *res, *lres;
   struct addrinfo hints;
 
+  CHECK_STRING (name);
+
   memset (&hints, 0, sizeof hints);
   if (NILP (family))
     hints.ai_family = AF_UNSPEC;

Robert
-- 





^ permalink raw reply related	[flat|nested] 4+ messages in thread

* bug#73337: 29.4; missing dynamic type checking in network-lookup-address-info
  2024-09-18 15:19 ` Robert Pluim
@ 2024-09-18 16:05   ` Eli Zaretskii
  2024-09-19  7:54     ` Robert Pluim
  0 siblings, 1 reply; 4+ messages in thread
From: Eli Zaretskii @ 2024-09-18 16:05 UTC (permalink / raw)
  To: Robert Pluim; +Cc: 73337, mitchell.jkyle

> From: Robert Pluim <rpluim@gmail.com>
> Cc: 73337@debbugs.gnu.org, Eli Zaretskii <eliz@gnu.org>
> Date: Wed, 18 Sep 2024 17:19:03 +0200
> 
> >>>>> On Wed, 18 Sep 2024 10:07:25 -0500, Jonathan Mitchell <mitchell.jkyle@gmail.com> said:
> 
>     Jonathan> There is no dynamic type checking of the ‘name’ argument in
>     Jonathan> ‘network-lookup-address-info’, thus causing a crash instead of signaling
>     Jonathan> a wrong-type-argument error when called with non-string values like
>     Jonathan> ‘(network-lookup-address-info 1)’ or ‘(network-lookup-address-info ’a)’.
> 
> Yep. Eli, emacs-30?

Yes, okay, but please also say in the doc string that NAME must be a
string.

Thanks.





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#73337: 29.4; missing dynamic type checking in network-lookup-address-info
  2024-09-18 16:05   ` Eli Zaretskii
@ 2024-09-19  7:54     ` Robert Pluim
  0 siblings, 0 replies; 4+ messages in thread
From: Robert Pluim @ 2024-09-19  7:54 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 73337, mitchell.jkyle

tags 73337 fixed
close 73337 30.1
quit

>>>>> On Wed, 18 Sep 2024 19:05:59 +0300, Eli Zaretskii <eliz@gnu.org> said:

    >> From: Robert Pluim <rpluim@gmail.com>
    >> Cc: 73337@debbugs.gnu.org, Eli Zaretskii <eliz@gnu.org>
    >> Date: Wed, 18 Sep 2024 17:19:03 +0200
    >> 
    >> >>>>> On Wed, 18 Sep 2024 10:07:25 -0500, Jonathan Mitchell <mitchell.jkyle@gmail.com> said:
    >> 
    Jonathan> There is no dynamic type checking of the ‘name’ argument in
    Jonathan> ‘network-lookup-address-info’, thus causing a crash instead of signaling
    Jonathan> a wrong-type-argument error when called with non-string values like
    Jonathan> ‘(network-lookup-address-info 1)’ or ‘(network-lookup-address-info ’a)’.
    >> 
    >> Yep. Eli, emacs-30?

    Eli> Yes, okay, but please also say in the doc string that NAME must be a
    Eli> string.

Closing.
Committed as 300d05ecb4c

Robert
-- 





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-09-19  7:54 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-18 15:07 bug#73337: 29.4; missing dynamic type checking in network-lookup-address-info Jonathan Mitchell
2024-09-18 15:19 ` Robert Pluim
2024-09-18 16:05   ` Eli Zaretskii
2024-09-19  7:54     ` Robert Pluim

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).