Re: wintrust: Always return ERROR_SUCCESS in WinVerifyTrust [RESEND]

2006-08-07 Thread Paul Vriens
On Mon, 2006-08-07 at 11:44 -0700, James Hawkins wrote:
> On 8/7/06, Paul Vriens <[EMAIL PROTECTED]> wrote:
> > >
> > When I run process explorer without tracing/debugging everything is
> > fine. As soon as I add +wintrust,+heap it fails again. There is most
> > likely some heap corruption somewhere (couldn't be more vague).
> >
> > Alexandre's patch to add more free list entries only masked the problem,
> > as far as I can see from the results.
> >
> > Cheers and sorry for the misleading remarks,
> >
> 
> Can you explain your comment, "Process Explorer expects a correct
> implementation" concerning WinVerifyTrust?  When it calls
> WinVerifyTrust and we return ERROR_SUCCESS, what does it do with that
> information that causes the application to fail?  Even if we took the
> time to implement WinVerifyTrust, we would still return ERROR_SUCCESS
> and the situation wouldn't be any different.  In the meantime, several
> installers are hanging up because of this.
> 
It just turned out (and that makes sense of course) that when returning
a real error Process Explorer uses a different code path. The calls PE
uses are:

CryptCATAdminAcquireContext (stubbed)
CryptCATAdminCalcHashFromFileHandle (stubbed)
CryptCATAdminReleaseContext (stubbed)

and then WinVerifyTrust (stubbed as well).

Before Alexandre's patch it always failed when returning ERROR_SUCCESS,
now it only fails when extra debugging is added. I have no clue (yet)
where the heap corruption comes from.

I can live btw with a default of ERROR_SUCCESS as that will work
(100% ?) when run as an ordinary user. There is however something fishy
going on.

Cheers,

Paul.






Re: wintrust: Always return ERROR_SUCCESS in WinVerifyTrust [RESEND]

2006-08-07 Thread James Hawkins

On 8/7/06, Paul Vriens <[EMAIL PROTECTED]> wrote:

>
When I run process explorer without tracing/debugging everything is
fine. As soon as I add +wintrust,+heap it fails again. There is most
likely some heap corruption somewhere (couldn't be more vague).

Alexandre's patch to add more free list entries only masked the problem,
as far as I can see from the results.

Cheers and sorry for the misleading remarks,



Can you explain your comment, "Process Explorer expects a correct
implementation" concerning WinVerifyTrust?  When it calls
WinVerifyTrust and we return ERROR_SUCCESS, what does it do with that
information that causes the application to fail?  Even if we took the
time to implement WinVerifyTrust, we would still return ERROR_SUCCESS
and the situation wouldn't be any different.  In the meantime, several
installers are hanging up because of this.

--
James Hawkins




Re: wintrust: Always return ERROR_SUCCESS in WinVerifyTrust [RESEND]

2006-08-07 Thread Paul Vriens
On Mon, 2006-08-07 at 11:11 -0700, James Hawkins wrote:
> Hi,
> 
> Accoring to recent comments by Paul Vriens, Process Explorer now
> accepts ERROR_SUCCESS from WinVerifyTrust, and several installers
> require ERROR_SUCCESS in order to continue, so everyone is happy.
> Fixes bugs 5573 and 3619.
> 
> http://bugs.winehq.org/show_bug.cgi?id=5573
> http://bugs.winehq.org/show_bug.cgi?id=3619
> 
> Changelog:
> * Always return ERROR_SUCCESS in WinVerifyTrust.
> 
>  dlls/wintrust/wintrust_main.c |   18 +-
>  1 files changed, 5 insertions(+), 13 deletions(-)
> 
When I run process explorer without tracing/debugging everything is
fine. As soon as I add +wintrust,+heap it fails again. There is most
likely some heap corruption somewhere (couldn't be more vague).

Alexandre's patch to add more free list entries only masked the problem,
as far as I can see from the results.

Cheers and sorry for the misleading remarks,

Paul.