[Outreachy][PATCH] builtin/update-server-info: remove the_repository global variable

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

 



Remove the_repository global variable in favor of the repository
argument that gets passed in "builtin/upload-server-info.c".

The RUN_SETUP macro is used in "git.c" when the 'update-server-info'
command is wired to the 'cmd_update_server_info()' function."
This means we can be sure that the `run_builtin()` function inside
"git.c" will always pass a valid `repo` variable to `cmd_update_server_info()`
when the `update-server-info` command is run inside a Git repository.

When the command is run outside a Git repository without the `-h`
option, the command will fail (`die`) inside the `run_builtin()` function
when the `setup_git_directory()` is called. So, the `cmd_update_server_info()`
would not be called at all. When `-h` is passed to the command outside a
Git repository, the `run_builtin()` will call the `cmd_update_server_info()`
function with `repo` set as NULL.

It is certain that the `update_server_info()` function would not be
called when the `repo` config is `NULL` since this only happens when the
`-h` option is used and the command would exit with code 129 before
getting to the `update_server_info()` function inside the
`usage_with_options()` function.

To prevent accessing a `NULL` value `repo`, it is necessary to check if
the `repo` has a valid value before calling the `repo_config` option
inside "update-server-info.c" since it comes before the
`usage_with_options()` function.

So, this change is safe and would not lead to any breakage.

Mentored-by: Christian Couder <chriscool@xxxxxxxxxxxxx>
Signed-off-by: Usman Akinyemi <usmanakinyemi202@xxxxxxxxx>
---
 builtin/update-server-info.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/builtin/update-server-info.c b/builtin/update-server-info.c
index 47a3f0bdd9..d7467290a8 100644
--- a/builtin/update-server-info.c
+++ b/builtin/update-server-info.c
@@ -1,4 +1,3 @@
-#define USE_THE_REPOSITORY_VARIABLE
 #include "builtin.h"
 #include "config.h"
 #include "gettext.h"
@@ -13,7 +12,7 @@ static const char * const update_server_info_usage[] = {
 int cmd_update_server_info(int argc,
 			   const char **argv,
 			   const char *prefix,
-			   struct repository *repo UNUSED)
+			   struct repository *repo)
 {
 	int force = 0;
 	struct option options[] = {
@@ -21,11 +20,12 @@ int cmd_update_server_info(int argc,
 		OPT_END()
 	};
 
-	git_config(git_default_config, NULL);
+	if (repo)
+		repo_config(repo, git_default_config, NULL);
 	argc = parse_options(argc, argv, prefix, options,
 			     update_server_info_usage, 0);
 	if (argc > 0)
 		usage_with_options(update_server_info_usage, options);
 
-	return !!update_server_info(the_repository, force);
+	return !!update_server_info(repo, force);
 }
-- 
2.48.1





[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