On 01/01/2012 12:13 AM, Yaakov (Cygwin/X) wrote: >> > You have to check st_dev here too don't you? > Of course. Revised patch for winsup/cygwin attached. >
> +extern "C" char *
> +get_current_dir_name (void)
> +{
> + char *pwd = getenv ("PWD");
> + char *cwd = getcwd (NULL, 0);
> +
> + if (pwd)
> + {
> + struct __stat64 pwdbuf, cwdbuf;
> + stat64 (pwd, &pwdbuf);
> + stat64 (cwd, &cwdbuf);
> + if ((pwdbuf.st_dev == cwdbuf.st_dev) && (pwdbuf.st_ino ==
> cwdbuf.st_ino))
> + {
> + cwd = (char *) malloc (strlen (pwd) + 1);
Memory leak. You need to free(cwd) before reassigning it. And why are
you using malloc(strlen())/strcpy(), when you could just use strdup()?
--
Eric Blake [email protected] +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
