This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: mkshortcut (cygutils-1.4.14) free error
- From: Anthony Heading <ajrh at ajrh dot net>
- To: cygwin at cygwin dot com
- Date: Sun, 25 Oct 2015 21:45:30 -0400
- Subject: Re: mkshortcut (cygutils-1.4.14) free error
- Authentication-results: sourceware.org; auth=none
- References: <1445135414 dot 3384650 dot 413058409 dot 46BC94AD at webmail dot messagingengine dot com>
Hi,
I see the cygutils package has been orphaned, perhaps explaining the
lack of response to the below.
A related question then is that the vanilla mkshortcut built from the
latest source package does not
seem to perfectly match the behaviour of the binary. Is there any way
to review or reproduce how
the binary package was built, or any other way to verify that the source
and binaries do match?
Thanks
Anthony
On Sat, Oct 17, 2015, at 10:30 PM, Anthony Heading wrote:
> Seems free() is being called on an adjusted pointer, causing general
> misbehaviour. A minimal patch below.
>
> Anthony
>
>
> --- src/mkshortcut/mkshortcut.c.Orig 2015-10-17 21:57:08.000000000
> -0400
> +++ src/mkshortcut/mkshortcut.c 2015-10-17 22:16:41.269357400 -0400
> @@ -412,7 +412,7 @@
> char* exe_name = NULL;
> char* dir_name = NULL;
> char* desc = NULL;
> - char *buf_str, *tmp_str;
> + char *buf_str, *tmp_str, *base_str;
> int tmp;
>
> /* For OLE interface */
> @@ -489,6 +489,7 @@
> {
> /* Strip trailing /'s if any */
> buf_str = xstrndup (opts.target_arg, strlen(opts.target_arg));
> + base_str = buf_str;
> tmp_str = buf_str;
> tmp = strlen (buf_str) - 1;
> while (strrchr (buf_str, '/') == (buf_str + tmp))
> @@ -504,7 +505,7 @@
> buf_str++;
> }
> link_name = xstrndup (tmp_str, strlen (tmp_str));
> - free (buf_str);
> + free (base_str);
> }
> /* User specified a name, so check it and convert */
> else
>
> --
> Problem reports: http://cygwin.com/problems.html
> FAQ: http://cygwin.com/faq/
> Documentation: http://cygwin.com/docs.html
> Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
>
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple