# Git crashed on `git apply --check`

3 messages from 2026-10-17 to 2026-10-25. Participants: Gingrspacecadet, Tanga Joris.
Thread: https://gitlist.dev/t/66568

## Gingrspacecadet, 2026-10-17 15:17

Subject: Git crashed on `git apply --check`
Message-ID: <CALdwsC1cMKZgRPZA+pBaJe4PPs9q9W0K9CQLmM2bgUCyysTB-w@mail.gmail.com>
URL: https://gitlist.dev/e/CALdwsC1cMKZgRPZA%2BpBaJe4PPs9q9W0K9CQLmM2bgUCyysTB-w%40mail.gmail.com

```
Thank you for filling out a Git bug report!
Please answer the following questions to help us understand your issue.

What did you do before the bug happened? (Steps to reproduce your issue)
Checking the following patch:
diff --git a/tests/constraint_type_signature_lifting.test
b/tests/constraint_type_signature_lifting.test

new file mode 100644
index 0000000..0000000
--- /dev/null
+++ b/tests/constraint_type_signature_lifting.test
@@ -0,0 +1,40 @@
+name: constraint types in signatures are lifted to generic parameters
+expect: pass
+stop: run
+errors: 0
+
+[source]
+constraint Readable = {
+    fn uint64 Readable.read(Readable *self);
+}
+
+type File = struct {
+    uint64 size;
+};
+
+fn uint64 File.read(File *self) {
+    return self.size;
+}
+
+fn Readable identity(Readable value) {
+    return value;
+}
+
+fn uint64 read_size(Readable file) {
+    return file.read();
+}
+
+fn int64 main() {
+    File file = {42};
+    File copy = identity(file);
+    if (copy.size != 42) return 1;
+    if (read_size(file) != 42) return 2;
+    return 0;
+}
+
+[stdout]
+
+[stderr]
+
+[exit]
+0

What did you expect to happen?
The patch check to pass

What happened instead?
"git: apply.c:3856: check_preimage: Assertion `patch->is_new <= 0' failed.i"

[System Info]
git version:
git version 2.54.0
cpu: x86_64
built from commit: 94f057755b7941b321fd11fec1b2e3ca5313a4e0
sizeof-long: 8
sizeof-size_t: 8
shell-path: /bin/sh
rust: enabled
gettext: enabled
libcurl: 8.19.0
OpenSSL: OpenSSL 3.6.2 7 Apr 2026
zlib-ng: 2.3.3
SHA-1: SHA1_DC
SHA-256: SHA256_BLK
default-ref-format: files
default-hash: sha1
uname: Linux 7.0.10-arch1-1 #1 SMP PREEMPT_DYNAMIC Sat, 23 May 2026
14:21:20 +0000 x86_64
compiler info: gnuc: 15.2
libc info: glibc: 2.43
$SHELL (typically, interactive shell): /usr/bin/bash


[Enabled Hooks]


```

## Tanga Joris, 2026-10-24 06:10

Subject: Re: Git crashed on `git apply --check`
Message-ID: <20261024061017.100191-1-tangajoris@gmail.com>
URL: https://gitlist.dev/e/20261024061017.100191-1-tangajoris%40gmail.com
In-Reply-To: <CALdwsC1cMKZgRPZA+pBaJe4PPs9q9W0K9CQLmM2bgUCyysTB-w@mail.gmail.com>

```
Hi,

Thanks for the report. I was unable to reproduce it with the patch as
quoted (the "diff --git" line is wrapped in your mail), but I can
trigger the same assertion on current master, and on 2.43, when the
"--- /dev/null" line comes before "new file mode" in the header:

    diff --git a/n.txt b/n.txt
    --- /dev/null
    +++ b/n.txt
    new file mode 100644
    @@ -0,0 +1 @@
    +hello

Was your patch handwritten or generated by a tool, and could you
please check whether its header lines are in that order? If you can,
please attach the exact file so that we can confirm it is the same
problem.

Thanks,
Tanga


```

## Tanga Joris, 2026-10-25 22:56

Subject: Re: Git crashed on `git apply --check`
Message-ID: <CAKrRMNr=e2b0aYC_MPCUdY4Ln+Dtrb75V_o1UeHJRbRT29NLzQ@mail.gmail.com>
URL: https://gitlist.dev/e/CAKrRMNr%3De2b0aYC_MPCUdY4Ln%2BDtrb75V_o1UeHJRbRT29NLzQ%40mail.gmail.com
In-Reply-To: <CALdwsC11JHUBBTt3e_RFixLYSF0VU1C+mG7bQsO0vV=a68XHNw@mail.gmail.com>

```
Adding the list back

On Sat, 24 Oct 2026 at 20:08, Gingrspacecadet
<jackrawlings2011@gmail.com> wrote:
>
> hi,
>
> I've attached the patch that faulted.
>
> It was generated by an LLM.

Hello,

Thank you for sending the original patch file. The crash was caused
by a blank line after the diff --git line in the new-file section,
and it is reproducible on master. I am currently working on a fix.

Best,
Tanga


```
