From: Derrick Stolee Date: Fri, 27 Nov 2020 20:43:12 GMT Subject: Re: [PATCH v2 1/1] maintenance: fix SEGFAULT when no repository Message-ID: <712ca8f7-c936-e03c-cbb9-4a0432fc3131@gmail.com> In-Reply-To: <20201126204141.1438-2-rafaeloliveira.cs@gmail.com> On 11/26/2020 3:41 PM, Rafael Silva wrote: > The "git maintenance run" and "git maintenance start/stop" commands > holds a file-based lock at the .git/maintenance.lock and > .git/schedule.lock respectively. These locks are used to ensure only > one maintenance process is executed at the time as both operations > involves writing data into the git repository. > > The path to the lock file is built using > "the_repository->objects->odb->path" that results in SEGFAULT when we > have no repository available as "the_repository->objects->odb" is > set to NULL. > > Let's teach maintenance command to use RUN_SETUP option that will > provide the validation and fail when running outside of a repository. > Hence fixing the SEGFAULT for all three operations and making the > behaviour consistent across all subcommands. > > Setting the RUN_SETUP also provides the same protection for all > subcommands given that the "register" and "unregister" also requires to > be executed inside a repository. > > Furthermore let's remove the local validation implemented by the > "register" and "unregister" as this will not be required anymore with > the new option. Thank you for this very clean patch! Reviewed-by: Derrick Stolee