Re: [REGRESSION] uninitialized value $address in git send-email

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2023-09-19 00:44, Bagas Sanjaya wrote:
> On Mon, Sep 18, 2023 at 04:26:44PM -0400, Michael Strawbridge wrote:
>> Hi,
>>
>> Author of a8022c5f7b67 (send-email: expose header information to
>> git-send-email's sendemail-validate hook, 2023-04-19) here.
>>
>> On 2023-09-18 08:56, Bagas Sanjaya wrote:
>>> I triggered this issue on patch series with cover letter. To reproduce:
>>>
>>> 1. Clone git.git repo, then branch off:
>>>
>>>    ```
>>>    $ git clone https://github.com/git/git.git && cd git
>>>    $ git checkout -b test
>>>    ```
>>>
>>> 2. Make two dummy signed-off commits:
>>>
>>>    ```
>>>    $ echo test > test && git add test && git commit -s -m "test"
>>>    $ echo "test test" >> test && git commit -a -s -m "test test"
>>>    ```
>>>
>>> 3. Generate patch series:
>>>
>>>    ```
>>>    $ mkdir /tmp/test
>>>    $ git format-patch -o /tmp/test --cover-letter main
>>>    ```
>>>
>>> 4. Send the series to dummy address:
>>>
>>>    ```
>>>    $ git send-email --to="pi <pi@pi>" /tmp/test/*.patch
>>>    ```
>> I tried to repro this today on my side.  I can repro the error when
>> using the address "pi <pi@pi>" but that's not a valid email address and
>> so one would expect it to fail in the extract_valid_address_or_die
>> function with the error that you mention.  As soon as I make the address
>> valid like "pi <pi@xxxxxx>", git send-email no longer complains.
>>
>> In your original case, are you trying to send email to an invalid email
>> address?  Is it an alias by chance?
> I triggered this regression when I passed multiple addresses separated by comma
> (like `--to="foo <foo@xxxxxxxx>,bar <bar@xxxxxxxx>"`, but somehow I managed to
> reduce the trigger to one address only (in this case, "pi <pi@xxxxxx>"). As for
> multiple addresses part, let me know if I should post another regression
> report.
>
Hm.  I'm not sure what to say.  I have used the below docker container
as a test environment and don't seem to find issues with 'git send-email
--to="pi <pi@xxxxxx>" /email/test/*.patch' nor with 'git send-email
--to="foo <foo@xxxxxxxx>,bar <bar@xxxxxxxx>" /email/test/*.patch'.

Maybe if you could try the following test environment too and see if you
can reproduce it inside the docker container:

NOTE: I assume you install docker on your system

Step 1) Create folder with the below files inside

Dockerfile:

...

FROM debian:trixie

RUN apt-get update && \
    apt-get install -y git git-email vim

WORKDIR /

RUN git clone https://github.com/git/git.git && \
    cd git && \
    git checkout -b test

#COPY git-send-email /usr/lib/git-core/git-send-email

RUN git config --global user.email "you@xxxxxxxxxxx"
RUN git config --global user.name "Your Name"

#specific error case
RUN cd git && echo '#!/bin/sh \n\
patatt sign --hook "${1}"' > .git/hooks/sendemail-validate

RUN cd git && echo test > test && git add test && git commit -s -m "test"
RUN cd git && echo "test test" >> test && git commit -a -s -m "test test"
RUN mkdir -p /email/test
RUN cd git && git format-patch -o /email/test --cover-letter master
RUN sed -i 's/\*\*\* SUBJECT HERE \*\*\*/test/'
/email/test/0000-cover-letter.patch

...


run.sh:

...

#!/bin/sh

sudo docker stop git-send-email-debug
sudo docker rm git-send-email-debug

sudo docker build -t git-send-email-debug:latest .

sudo docker run -it --name git-send-email-debug git-send-email-debug:latest

...


Step 2) Make run.sh executable and start run.sh to create docker
container shell.  Inside the container's shell (will pop up
automatically) please try this:

git send-email --to="foo <foo@xxxxxxxx>,bar <bar@xxxxxxxx>"
/email/test/*.patch


Please let me know the results of the test case above and any other
things you try that have interesting results.


Thank you!




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux