bug found on the new git maintenance builtin command

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

 



Hi Everyone,

I found a minor bug when testing the new maintenance built-in command that was
introduced on 679768e2a1 (maintenance: create basic maintenance runner, 2020-08-25) submitted in [1]

When running `git maintenance` without argument it receives
a segmentation fault. I'm running git built on the current `seen` branch that is pointing
to bf3e2864f3 (Merge branch 'ds/maintenance-part-3' into seen, 2020-09-11)

I did a little investigation and it seems the command needs to check when no arguments
are passed to the cmd_maintanance() function and either quit with usage or redirect to man.

To reproduce the error, just run the `git maintenance` without any arguments

$ git maintenance
Segmentation fault

Analysign with GDB right before the SEGFAULT are thrown, we can see
the argv[1] pointing to NULL as follows: 

(gdb) list
1628    int cmd_maintenance(int argc, const char **argv, const char *prefix)
1629    {
1630        if (argc == 2 && !strcmp(argv[1], "-h"))
1631            usage(builtin_maintenance_usage);
1632
1633        fprintf(stdout, "run");
1634        if (!strcmp(argv[1], "run"))
1635            return maintenance_run(argc - 1, argv + 1, prefix);
1636        if (!strcmp(argv[1], "start"))
1637            return maintenance_start();
(gdb) print argc
$5 = 1
(gdb) print argv[1]
$6 = 0x0

Hope all this information helps with the fixing it

[1] Patch submission can be found in:
https://public-inbox.org/git/aa961af387b7f458f75ad60b9a2a45da4bb43794.1599224956.git.gitgitgadget@xxxxxxxxx/

Regards,
Rafael Silva



[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