]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Sync with 2.45.4
authorTaylor Blau <me@ttaylorr.com>
Wed, 28 May 2025 18:57:08 +0000 (14:57 -0400)
committerTaylor Blau <me@ttaylorr.com>
Wed, 28 May 2025 18:57:08 +0000 (14:57 -0400)
* maint-2.45:
  Git 2.45.4
  Git 2.44.4
  Git 2.43.7
  wincred: avoid buffer overflow in wcsncat()
  bundle-uri: fix arbitrary file writes via parameter injection
  config: quote values containing CR character
  git-gui: sanitize 'exec' arguments: convert new 'cygpath' calls
  git-gui: do not mistake command arguments as redirection operators
  git-gui: introduce function git_redir for git calls with redirections
  git-gui: pass redirections as separate argument to git_read
  git-gui: pass redirections as separate argument to _open_stdout_stderr
  git-gui: convert git_read*, git_write to be non-variadic
  git-gui: override exec and open only on Windows
  gitk: sanitize 'open' arguments: revisit recently updated 'open' calls
  git-gui: use git_read in githook_read
  git-gui: sanitize $PATH on all platforms
  git-gui: break out a separate function git_read_nice
  git-gui: assure PATH has only absolute elements.
  git-gui: remove option --stderr from git_read
  git-gui: cleanup git-bash menu item
  git-gui: sanitize 'exec' arguments: background
  git-gui: avoid auto_execok in do_windows_shortcut
  git-gui: sanitize 'exec' arguments: simple cases
  git-gui: avoid auto_execok for git-bash menu item
  git-gui: treat file names beginning with "|" as relative paths
  git-gui: remove unused proc is_shellscript
  git-gui: remove git config --list handling for git < 1.5.3
  git-gui: remove special treatment of Windows from open_cmd_pipe
  git-gui: remove HEAD detachment implementation for git < 1.5.3
  git-gui: use only the configured shell
  git-gui: remove Tcl 8.4 workaround on 2>@1 redirection
  git-gui: make _shellpath usable on startup
  git-gui: use [is_Windows], not bad _shellpath
  git-gui: _which, only add .exe suffix if not present
  gitk: encode arguments correctly with "open"
  gitk: sanitize 'open' arguments: command pipeline
  gitk: collect construction of blameargs into a single conditional
  gitk: sanitize 'open' arguments: simple commands, readable and writable
  gitk: sanitize 'open' arguments: simple commands with redirections
  gitk: sanitize 'open' arguments: simple commands
  gitk: sanitize 'exec' arguments: redirect to process
  gitk: sanitize 'exec' arguments: redirections and background
  gitk: sanitize 'exec' arguments: redirections
  gitk: sanitize 'exec' arguments: 'eval exec'
  gitk: sanitize 'exec' arguments: simple cases
  gitk: have callers of diffcmd supply pipe symbol when necessary
  gitk: treat file names beginning with "|" as relative paths

Signed-off-by: Taylor Blau <me@ttaylorr.com>
1  2 
bundle-uri.c
config.c
git-gui/git-gui.sh
t/t1300-config.sh
t/t5558-clone-bundle-uri.sh

diff --cc bundle-uri.c
Simple merge
diff --cc config.c
Simple merge
Simple merge
index f13277c8f3e3c410aecd3aea9141323c0398058e,00f34c5a01a62ac5e55dcf0d4c115d8979b0d473..a1248f82fa45e9582cf81890f50b29a88ee28630
@@@ -2831,25 -2738,15 +2831,36 @@@ test_expect_success 'includeIf.hasconfi
        grep "fatal: remote URLs cannot be configured in file directly or indirectly included by includeIf.hasconfig:remote.*.url" err
  '
  
 +test_expect_success 'negated mode causes failure' '
 +      test_must_fail git config --no-get 2>err &&
 +      grep "unknown option \`no-get${SQ}" err
 +'
 +
 +test_expect_success 'specifying multiple modes causes failure' '
 +      cat >expect <<-EOF &&
 +      error: options ${SQ}--get-all${SQ} and ${SQ}--get${SQ} cannot be used together
 +      EOF
 +      test_must_fail git config --get --get-all 2>err &&
 +      test_cmp expect err
 +'
 +
 +test_expect_success 'writing to stdin is rejected' '
 +      echo "fatal: writing to stdin is not supported" >expect &&
 +      test_must_fail git config ${mode_set} --file - foo.bar baz 2>err &&
 +      test_cmp expect err
 +'
 +
 +done
 +
+ test_expect_success 'writing value with trailing CR not stripped on read' '
+       test_when_finished "rm -rf cr-test" &&
+       printf "bar\r\n" >expect &&
+       git init cr-test &&
+       git -C cr-test config set core.foo $(printf "bar\r") &&
+       git -C cr-test config get core.foo >actual &&
+       test_cmp expect actual
+ '
  test_done
Simple merge