public inbox for cygwin-apps@cygwin.com
 help / color / mirror / Atom feed
* [Bug] setup.exe
@ 2013-11-17 18:07 Achim Gratz
  2013-11-18 10:06 ` Corinna Vinschen
  0 siblings, 1 reply; 3+ messages in thread
From: Achim Gratz @ 2013-11-17 18:07 UTC (permalink / raw)
  To: cygwin-apps


No good deed goes unpunished… the latest changes to setup.exe to use the
UNC path interfaces break set_cout.  This function is only used in
unattended mode and when the help option is used and setup.exe works
correctly when this function does not get called.

The reason for the breakage is the special filename "conout$" that is
used to attach to the console output handle and the override to fopen
that then treats it like any other file name and makes a UNC path
"\\?\conout$" from it.  If I remove the override for fopen, things are
working again, but I can't find how to specify "conout$" via a UNC path
and simply setting the string back to "conout$" in the attr structure in
gdb didn't work, either.


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

SD adaptation for Waldorf microQ V2.22R2:
http://Synth.Stromeko.net/Downloads.html#WaldorfSDada

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Bug] setup.exe
  2013-11-17 18:07 [Bug] setup.exe Achim Gratz
@ 2013-11-18 10:06 ` Corinna Vinschen
  2013-11-18 19:51   ` Achim Gratz
  0 siblings, 1 reply; 3+ messages in thread
From: Corinna Vinschen @ 2013-11-18 10:06 UTC (permalink / raw)
  To: cygwin-apps

[-- Attachment #1: Type: text/plain, Size: 1627 bytes --]

On Nov 17 19:07, Achim Gratz wrote:
> 
> No good deed goes unpunished… the latest changes to setup.exe to use the
> UNC path interfaces break set_cout.  This function is only used in
> unattended mode and when the help option is used and setup.exe works
> correctly when this function does not get called.
> 
> The reason for the breakage is the special filename "conout$" that is
> used to attach to the console output handle and the override to fopen
> that then treats it like any other file name and makes a UNC path
> "\\?\conout$" from it.

Thanks for tracking this down.

> If I remove the override for fopen, things are
> working again, but I can't find how to specify "conout$" via a UNC path
> and simply setting the string back to "conout$" in the attr structure in
> gdb didn't work, either.

It's impossible prior to Windows 8.  In the days before Windows 8, the
console handle was always a fake handle, entirely handled within the
Win32 kernel32.dll.  Each access to a console handle got redirected
to calling a CrsXXX functions which calls CSRSS via LPC.  Windows 8
finally introduced a native Console device called \Device\ConDrv so
consoles became real OS objects.

Having said that, this set_cout function is a real bummer.  The easiest
way to fix this problem is to rename fopen to nt_fopen (analoge to
nt_wfopen) and to change all explicit fopen calls to nt_fopen calls.
I'll do that in a minute.


Thanks again,
Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Bug] setup.exe
  2013-11-18 10:06 ` Corinna Vinschen
@ 2013-11-18 19:51   ` Achim Gratz
  0 siblings, 0 replies; 3+ messages in thread
From: Achim Gratz @ 2013-11-18 19:51 UTC (permalink / raw)
  To: cygwin-apps

Corinna Vinschen writes:
>> If I remove the override for fopen, things are
>> working again, but I can't find how to specify "conout$" via a UNC path
>> and simply setting the string back to "conout$" in the attr structure in
>> gdb didn't work, either.
>
> It's impossible prior to Windows 8.  In the days before Windows 8, the
> console handle was always a fake handle, entirely handled within the
> Win32 kernel32.dll.  Each access to a console handle got redirected
> to calling a CrsXXX functions which calls CSRSS via LPC.  Windows 8
> finally introduced a native Console device called \Device\ConDrv so
> consoles became real OS objects.

Huh.  No wonder I didn't find anything.

> Having said that, this set_cout function is a real bummer.  The easiest
> way to fix this problem is to rename fopen to nt_fopen (analoge to
> nt_wfopen) and to change all explicit fopen calls to nt_fopen calls.
> I'll do that in a minute.

Thank you very much.


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

SD adaptation for Waldorf microQ V2.22R2:
http://Synth.Stromeko.net/Downloads.html#WaldorfSDada

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-11-18 19:51 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-11-17 18:07 [Bug] setup.exe Achim Gratz
2013-11-18 10:06 ` Corinna Vinschen
2013-11-18 19:51   ` Achim Gratz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).