{"thread":{"id":"11994","subject":"[PATCH] guard config parser from value=NULL","startedAt":"2008-02-09T17:05:24Z","lastAt":"2008-02-10T17:08:20Z","messageCount":3,"participants":["Martin Koegler","Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"68101","messageId":"12025767241532-git-send-email-mkoegler@auto.tuwien.ac.at","threadId":"11994","inReplyTo":null,"subject":"[PATCH] guard config parser from value=NULL","fromName":"Martin Koegler","fromEmail":"mkoegler@auto.tuwien.ac.at","sentAt":"2008-02-09T17:05:24Z","receivedAt":"2008-02-09T17:05:24Z","isPatch":true,"sender":{"key":"mkoegler@auto.tuwien.ac.at","avatar":null},"body":"Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>\n---\n config.c |   10 +++++-----\n setup.c  |    2 +-\n 2 files changed, 6 insertions(+), 6 deletions(-)\n\ndiff --git a/config.c b/config.c\nindex 658a11c..b2ea263 100644\n--- a/config.c\n+++ b/config.c\n@@ -416,7 +416,7 @@ int git_default_config(const char *var, const char *value)\n \t\treturn 0;\n \t}\n \n-\tif (!strcmp(var, \"user.name\")) {\n+\tif (value && !strcmp(var, \"user.name\")) {\n \t\tstrlcpy(git_default_name, value, sizeof(git_default_name));\n \t\treturn 0;\n \t}\n@@ -426,12 +426,12 @@ int git_default_config(const char *var, const char *value)\n \t\treturn 0;\n \t}\n \n-\tif (!strcmp(var, \"i18n.commitencoding\")) {\n+\tif (value && !strcmp(var, \"i18n.commitencoding\")) {\n \t\tgit_commit_encoding = xstrdup(value);\n \t\treturn 0;\n \t}\n \n-\tif (!strcmp(var, \"i18n.logoutputencoding\")) {\n+\tif (value && !strcmp(var, \"i18n.logoutputencoding\")) {\n \t\tgit_log_output_encoding = xstrdup(value);\n \t\treturn 0;\n \t}\n@@ -442,12 +442,12 @@ int git_default_config(const char *var, const char *value)\n \t\treturn 0;\n \t}\n \n-\tif (!strcmp(var, \"core.pager\")) {\n+\tif (value && !strcmp(var, \"core.pager\")) {\n \t\tpager_program = xstrdup(value);\n \t\treturn 0;\n \t}\n \n-\tif (!strcmp(var, \"core.editor\")) {\n+\tif (value && !strcmp(var, \"core.editor\")) {\n \t\teditor_program = xstrdup(value);\n \t\treturn 0;\n \t}\ndiff --git a/setup.c b/setup.c\nindex 23c9a11..8d792dc 100644\n--- a/setup.c\n+++ b/setup.c\n@@ -445,7 +445,7 @@ int check_repository_format_version(const char *var, const char *value)\n \t\tis_bare_repository_cfg = git_config_bool(var, value);\n \t\tif (is_bare_repository_cfg == 1)\n \t\t\tinside_work_tree = -1;\n-\t} else if (strcmp(var, \"core.worktree\") == 0) {\n+\t} else if (value && strcmp(var, \"core.worktree\") == 0) {\n \t\tif (git_work_tree_cfg)\n \t\t\tfree(git_work_tree_cfg);\n \t\tgit_work_tree_cfg = xstrdup(value);\n-- \n1.5.4.gbd71f\n"},{"id":"68123","messageId":"7vhcghet3q.fsf@gitster.siamese.dyndns.org","threadId":"11994","inReplyTo":"12025767241532-git-send-email-mkoegler@auto.tuwien.ac.at","subject":"Re: [PATCH] guard config parser from value=NULL","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-02-09T21:07:53Z","receivedAt":"2008-02-09T21:07:53Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Martin Koegler <mkoegler@auto.tuwien.ac.at> writes:\n\n> @@ -416,7 +416,7 @@ int git_default_config(const char *var, const char *value)\n>  \t\treturn 0;\n>  \t}\n>  \n> -\tif (!strcmp(var, \"user.name\")) {\n> +\tif (value && !strcmp(var, \"user.name\")) {\n>  \t\tstrlcpy(git_default_name, value, sizeof(git_default_name));\n>  \t\treturn 0;\n>  \t}\n\nThis is wrong, isn't it?  When somebody says\n\n\t[user]\n        \tname\n\nwe should not silently ignore it, but instead say \"user.name is\nnot a bool!\" and error out.\n\nThe same comment applies to all other\n\n\tif (value && !strcmp(var, \"<varname>\"))\n\nconversions.\n"},{"id":"68234","messageId":"20080210170820.GA12162@auto.tuwien.ac.at","threadId":"11994","inReplyTo":"7vhcghet3q.fsf@gitster.siamese.dyndns.org","subject":"Re: [PATCH] guard config parser from value=NULL","fromName":"Martin Koegler","fromEmail":"mkoegler@auto.tuwien.ac.at","sentAt":"2008-02-10T17:08:20Z","receivedAt":"2008-02-10T17:08:20Z","isPatch":true,"sender":{"key":"mkoegler@auto.tuwien.ac.at","avatar":null},"body":"On Sat, Feb 09, 2008 at 01:07:53PM -0800, Junio C Hamano wrote:\n> Martin Koegler <mkoegler@auto.tuwien.ac.at> writes:\n> \n> > @@ -416,7 +416,7 @@ int git_default_config(const char *var, const char *value)\n> >  \t\treturn 0;\n> >  \t}\n> >  \n> > -\tif (!strcmp(var, \"user.name\")) {\n> > +\tif (value && !strcmp(var, \"user.name\")) {\n> >  \t\tstrlcpy(git_default_name, value, sizeof(git_default_name));\n> >  \t\treturn 0;\n> >  \t}\n> \n> This is wrong, isn't it?  When somebody says\n> \n> \t[user]\n>         \tname\n> \n> we should not silently ignore it, but instead say \"user.name is\n> not a bool!\" and error out.\n> \n> The same comment applies to all other\n> \n> \tif (value && !strcmp(var, \"<varname>\"))\n> \n> conversions.\n\nFor all in config.c, yes.\n\nFor setup.c, I would say no. The code is called, when trying to find a\ngit repository.\n\nI have seen, that a similar patch for the config.c stuff has been\nposted. I will wait some days to see, what happens with it.\n\nmfg Martin Kögler\n"}]}