Re: [PATCH v3 15/27] compat/win32: fix const-correctness with string constants
On Mon, Jun 03, 2024 at 12:04:37PM -0700, Junio C Hamano wrote:
Show 28 quoted lines
> Eric Sunshine <sunshine@sunshineco.com> writes:
>
> > On Mon, Jun 3, 2024 at 5:46 AM Patrick Steinhardt <ps@pks.im> wrote:
> >> Adjust various places in our Win32 compatibility layer where we are not
> >> assigning string constants to `const char *` variables.
> >>
> >> Signed-off-by: Patrick Steinhardt <ps@pks.im>
> >> ---
> >> diff --git a/compat/basename.c b/compat/basename.c
> >> @@ -1,6 +1,8 @@
> >> +static char current_directory[] = ".";
> >> @@ -10,7 +12,13 @@ char *gitbasename (char *path)
> >> if (!path || !*path)
> >> - return ".";
> >> + /*
> >> + * basename(3P) is mis-specified because it returns a
> >> + * non-constant pointer even though it is specified to return a
> >> + * pointer to internal memory at times. The cast is a result of
> >> + * that.
> >> + */
> >> + return (char *) "";
> >
> > The change from returning "." to returning "" is unexplained by the
> > commit message. Did you mean to return the newly-introduced
> > `current_directory` instead?
>
> I suspect that these places wanted to return (char *) "." instead,
> without introducing a new variable.
Oof, that's bad. Thanks for catching this!
Patrick