Subject: 30.0.50; auth-source-search doesn't support numeric port on macOS

From: "Kirill A. Korinsky" <[email-masked]>
Date: Thu, 11 Jan 2024 01:57:21 +0100

Greeting,

I'd like to share a bug with simple reproducer:

(auth-source-search :host "some.host" :port "123" :user "user")
(auth-source-search :host "some.host" :port 123 :user "user")

The first line works as expected, and the second one fails as:

Debugger entered--Lisp error: (wrong-type-argument stringp 123)
  call-process("/usr/bin/security" nil t nil "find-generic-password" "-g" "-c" "some.host" "-a" "user" "-s" 123)
  auth-source-macos-keychain-search-items("default" macos-keychain-generic 1 "some.host" 123 "user" :type macos-keychain-generic :user "user")
  apply(auth-source-macos-keychain-search-items "default" macos-keychain-generic 1 "some.host" 123 "user" (:type macos-keychain-generic :user "user"))
  auth-source-macos-keychain-search(:backend #<auth-source-backend auth-source-backend-1ff08463df92> :type macos-keychain-generic :max 1 :require nil :create nil :delete nil :host "some.host" :port 123 :user "user")
  auth-source-search-backends((#<auth-source-backend auth-source-backend-1ff08463df92> #<auth-source-backend auth-source-backend-1ff0887f79e6> #<auth-source-backend auth-source-backend-1ff07046d5fe> #<auth-source-backend auth-source-backend-1ff070457074>) (:host "some.host" :port 123 :user "user") 1 nil nil nil)
  auth-source-search(:host "some.host" :port 123 :user "user")
  eval((auth-source-search :host "some.host" :port 123 :user "user") nil)
  elisp--eval-last-sexp(nil)
  eval-last-sexp(nil)
  funcall-interactively(eval-last-sexp nil)
  command-execute(eval-last-sexp)

on

In GNU Emacs 30.0.50 (build 1, x86_64-apple-darwin21.6.0, NS
 appkit-2113.60 Version 12.7.1 (Build 21G920)) of 2024-01-10 built on
 Kirills-MBP.sa31-home.catap.net
Windowing system distributor 'Apple', version 10.3.2113
System Description:  macOS 12.7.1

Configured using:
 'configure --prefix=/opt/local --disable-silent-rules --without-dbus
 --without-gconf --without-libotf --without-m17n-flt --with-libgmp
 --with-gnutls --with-json --with-xml2 --with-modules --with-sqlite3
 --with-webp --infodir /opt/local/share/info/emacs --with-ns
 --with-lcms2 --without-harfbuzz --without-xaw3d --with-imagemagick
 --with-rsvg --with-native-compilation=aot --with-tree-sitter
 'CFLAGS=-pipe -Os
 -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk -arch
 x86_64' 'CPPFLAGS=-I/opt/local/include
 -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk'
 'LDFLAGS=-L/opt/local/lib -Wl,-headerpad_max_install_names -Wl,-rpath
 /opt/local/lib/gcc13
 -Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk
 -arch x86_64''

which was build from https://github.com/emacs-mirror/emacs/commit/d9462e24a967e32d550ee886b5150f0cc78358f6 <https://github.com/emacs-mirror/emacs/commit/d9462e24a967e32d550ee886b5150f0cc78358f6>
--
wbr, Kirill