cygcheck -svc segfaults on Windows 8.1 with cygwin64
Corinna Vinschen
corinna-cygwin@cygwin.com
Tue Nov 19 10:03:00 GMT 2013
On Nov 18 21:35, Gabriel Marcano wrote:
> cygcheck -svc causes a segfault on Windows 8.1 on line 1610 of cygcheck.cc, based on gdb output. I'm including some gdb output below that showcases this issue:
>
>
> 1610 strcat (osname, products[prod]);
> (gdb) list
> 1605 if (prod == PRODUCT_UNLICENSED)
> 1606 strcat (osname, "Unlicensed");
> 1607 else if (prod > PRODUCT_PROFESSIONAL_WMC)
> 1608 strcat (osname, "");
> 1609 else
> 1610 strcat (osname, products[prod]);
> 1611 }
> 1612 else
> 1613 {
> 1614 }
> (gdb) p prod
> $1 = 101
> (gdb) p sizeof(products)/sizeof(void*)
> $2 = 101
>
>
> 'products[prod]' in this case is accessing memory outside of the
> 'products' array. The odd thing is that a few lines back, the
> declaration of products includes 104 elements. I do not know why this
> discrepancy exists-- anyone have a clue?
Yes. The size of the array is not what you think it is. The reason is
that several commas are missing. Since I created this array, it's all
my fault :} I didn't notice this because I'm using the Enterprise
version which have a product value 4, which is pretty safe.
I'm going to fix this in CVS today, but at the same time I'm also going
to look for a solution to differ between Windows 8 and 8.1 (also 2012
vs. 2012R2) in the cygcheck output. Right now cygcheck just prints
Windows 8.
Thanks for the report,
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
Red Hat
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin/attachments/20131119/858fe287/attachment.sig>
More information about the Cygwin
mailing list