Re: urlmon:sec_mgr failure on XP

2011-09-10 Thread Thomas Mullaly
Hi Francois,

On Sat, Sep 10, 2011 at 6:33 AM, Francois Gouget fgou...@free.fr wrote:

 This test now fails on my Widnows XP VMs that have IE = 7 with 'All
 zones reset to default level':
 http://test.winehq.org/data/3b40c03a8f0e3dcbb236d59125b115b2501086f8/xp_fg-winxp-latest/urlmon:sec_mgr.html

 sec_mgr.c:1695: Test failed: Expected zone 3, but got 1 for 
 'file/testing/test.test'

I wasn't able to reproduce this problem on my Windows XP VM. I was,
however, able to reproduce this problem using Windows 7.

 So I'm hoping that you can fix the test.

 The easiest fix would be to remove the 'file/testing/test.test' check.
 An alternative would be to check what the settings are and adjust the
 expected result or skip the test. But it seems like this would be much
 more complex.

The test in question isn't really relevant with showing how the
function itself should work, so removing it will be fine (I'll be
sending a patch shortly removing it).

Thanks for pointing this issue out.

-- 
Thomas Mullaly
thomas.mull...@gmail.com




Re: [1/4] urlmon: Use CoTaskMemFree instead of HeapFree for memory allocated with CoTaskMemAlloc

2011-09-05 Thread Thomas Mullaly
Hi Jacek,

On Mon, Sep 5, 2011 at 3:33 AM, Jacek Caban ja...@codeweavers.com wrote:

 AFAICS secur_url wasn't allocated with CoTaskMemAlloc until this patch. Why
 are you changing it?

map_url_to_zone gets secur_url allocated in one of two ways. The
first way is through CoInternetGetSecurityUrl, which allocates the
resulting URL with CoTaskMemAlloc. The second way is if
CoInternetGetSecurityUrl fails, in which case it was allocating with
HeapAlloc. Since we can't change how CoInternetGetSecurityUrl
allocates memory, I switched everything to use the CoTaskMem*
functions, so that we don't mix CoTaskMemAlloc functions with HeapFree
functions.

-- 
Thomas Mullaly
thomas.mull...@gmail.com




Re: Use of uninitialized variable in combine_uri()

2010-11-02 Thread Thomas Mullaly
Hi Gerald,

On Tue, Nov 2, 2010 at 6:51 PM, Gerald Pfeifer ger...@pfeifer.com wrote:
 Hi Thomas,

 the following change of yours

  commit bced2e21dbc548ef9d41e3ff11384d7ad964c929
  Author: Thomas Mullaly thomas.mull...@gmail.com
  Date:   Sat Oct 9 11:02:17 2010 -0400

    urlmon: Implemented base case for CoInternetCombineIUri.

 introduces a new warning, use of uninitialized variable in the line
 marked HERE below.

  +static HRESULT combine_uri(Uri *base, Uri *relative, DWORD flags, IUri 
 **result
  +    Uri *ret;
  +    HRESULT hr;
  +    parse_data data;
  +
  +    /* Base case is when the relative Uri has a scheme name,
  +     * if it does, then 'result' will contain the same data
  +     * as the relative Uri.
  +     */
  +    if(relative-scheme_start  -1) {
  +        DWORD create_flags = 0;
  +
  +        memset(data, 0, sizeof(parse_data));
  +
  +        data.uri = SysAllocString(relative-raw_uri);
  +        if(!data.uri) {
  +            IUri_Release(URI(ret)); == HERE
  +            *result = NULL;
  +            return E_OUTOFMEMORY;
  +        }

 From all I can tell this is a legitimate warning, that is, the code
 really invokes undefined behavior.  Would you mind having a look?

 Gerald


Whoa! Good catch, I'll submit a new patch set here in a few minutes fixing that.

Thank you for the heads up.

-- 
Thomas Mullaly
thomas.mull...@gmail.com




Re: [2/7] urlmon/tests: Removed no longer needed todo_wine's

2010-09-09 Thread Thomas Mullaly
Hi Paul,

On Thu, Sep 9, 2010 at 2:19 AM, Paul Vriens paul.vriens.w...@gmail.comwrote:

 todo_wine's that succeed are marked as failures so that means these are not
 fixed on (at least) AJ's box as otherwise previous patches would have been
 rejected.


The reason they didn't show up as test succeeded failures on wine is because
they weren't getting executed on wine. This is because IUriBuilder_GetIUri
wasn't implemented which means it would skip those tests on wine. I
implemented GetIUri in patch 5/7 of this set which would have caused a lot
of test succeeded failures until the todo's were removed. So I decided
(since removing the todo's just by themselves resulted in a lot of changes)
to keep this patch separate from the 5/7 patch. Of course, if it's
preferred, I can always merge the changes into patch 5/7 and resubmit this
set.

-- 
Thomas Mullaly
thomas.mull...@gmail.com



Re: The Test Bot seems to be having issues

2010-08-20 Thread Thomas Mullaly
On Fri, Aug 20, 2010 at 4:44 AM, GOUJON Alexandre ale.gou...@gmail.comwrote:

 It's Grep Geldorp but wine-devel is a good place too.


Thanks, hopefully he notices the thread.


 There are some div and /div in your patch.
 Anyway, the bot applied your patch successfully and began to run some of
 your tests.


Hmm... All my patches (coming through wine-patches) seem to end up with
those div tags in them, but, they've never caused problems.


 Now, the only thing to do is waiting...


At this point I would be surprised if the Test bot started randomly working
without any assistance. The job has been in the running state for 24+
hours already, without any progress being made.

-- 
Thomas Mullaly
thomas.mull...@gmail.com



The Test Bot seems to be having issues

2010-08-19 Thread Thomas Mullaly
Hi all,

First off, I'm not sure who should be contacted about this, but, it appears
that the test bot has got itself stuck while trying to run tests on a patch
submitted last night. The job in question is here [1], it's been over 12
hours since any progress has been made on it and no other submissions have
run since then. Also, the Windows 98SE has been reverting this whole time,
so I'm not sure if this is the culprit or not.

I also hate to admit that the job in question is from one of my patches I
sent in last night (although I'm pretty sure it doesn't have anything to do
with the quality of the code in the patch ;-) ).

Anyways, I'm hoping that somebody in charge of the test bot might be able to
fix the traffic jam it's causing.

[1] https://testbot.winehq.org/JobDetails.pl?Key=4570
https://testbot.winehq.org/JobDetails.pl?Key=4570
-- 
Thomas Mullaly
thomas.mull...@gmail.com



Re: [3/5] urlmon: Implemented canonicalization for ports in URIs

2010-07-28 Thread Thomas Mullaly
On Wed, Jul 28, 2010 at 8:14 AM, Alexandre Julliard julli...@winehq.orgwrote:

 Thomas Mullaly thomas.mull...@gmail.com writes:

  ---
   dlls/urlmon/uri.c |   88
  +++-
   1 files changed, 86 insertions(+), 2 deletions(-)

 It doesn't work here:

 ../../../tools/runtest -q -P wine -M urlmon.dll -T ../../.. -p
 urlmon_test.exe.so uri.c  touch uri.ok
 uri.c:2788: Test failed: Error: Expected a length of 0 but got -2 on
 uri_tests[13].str_props[6].
 make: *** [uri.ok] Error 1


Hmm... that's weird. The patch didn't change any of the test cases nor did
it even change any of the implementations that it's now failing on.

I would like to ask if you could ignore the whole patch set until I figure
out what's going on, since the bug might have been introduced earlier in the
set. Thanks.

-- 
Thomas Mullaly
thomas.mull...@gmail.com



Re: [6/6] urlmon/tests: Added some more test URIs (resend)

2010-07-28 Thread Thomas Mullaly
On Wed, Jul 28, 2010 at 8:09 PM, Marvin test...@testbot.winehq.org wrote:

 === WXPPROSP3 (32 bit uri) ===
 uri.c:2169: Test failed: Expected http://google.com:00035 but got L
 http://google.com:35; on uri_tests[60].str_props[2].
 uri.c:2400: Test failed: Error: Expected http://google.com:00035 but got
 Lhttp://google.com:35; on uri_test[60].
 uri.c:2856: Test failed: Error: Expected a length of 23 but got 20 on
 uri_tests[60].str_props[2].

 === WVISTAADM (32 bit uri) ===
 uri.c:2169: Test failed: Expected http://google.com:00035 but got L
 http://google.com:35; on uri_tests[60].str_props[2].
 uri.c:2400: Test failed: Error: Expected http://google.com:00035 but got
 Lhttp://google.com:35; on uri_test[60].
 uri.c:2856: Test failed: Error: Expected a length of 23 but got 20 on
 uri_tests[60].str_props[2].

 === W2K8SE (32 bit uri) ===
 uri.c:2169: Test failed: Expected http://google.com:00035 but got L
 http://google.com:35; on uri_tests[60].str_props[2].
 uri.c:2400: Test failed: Error: Expected http://google.com:00035 but got
 Lhttp://google.com:35; on uri_test[60].
 uri.c:2856: Test failed: Error: Expected a length of 23 but got 20 on
 uri_tests[60].str_props[2].


There seems to subtle differences between the implementations of CreateUri,
since these tests only failed on machines with IE7 installed and passed on
the machines with IE8 installed...

-- 
Thomas Mullaly
thomas.mull...@gmail.com



Re: urlmon: CreateUri should return E_INVALIDARG for NULL args.

2010-05-13 Thread Thomas Mullaly
On Thu, May 13, 2010 at 3:41 AM, Paul Vriens paul.vriens.w...@gmail.comwrote:

 I don't think these comments are needed as the same is shown in the tests
 below (I was actually triggered by the wrong spelling of 'receives' btw).


Whoops. I always manage to misspell receive somehow...

I'll submit a new patch here shortly.

-- 
Thomas Mullaly
thomas.mull...@gmail.com



Re: [GSoC] IUri Implementations

2010-04-08 Thread Thomas Mullaly




Hi Jacek,
Test
should be integrated with Wine tests. See dlls/shlwapi/tests/url.c
and dlls/wininet/tests/url.c for an idea of how it should be done.

Thank you, shlwapi's url test was very helpful and has given me some
good ideas for testing.

If
you have specific questions, feel free to ask here. Proposal itself
should be posted to gsoc app. It's capable of editing proposals and
getting feedback.


Here's the link to my proposal
http://socghop.appspot.com/gsoc/student_proposal/show/google/gsoc2010/thomas_mullaly/t127066435448
I would greatly appreciate it if anybody would check it out and leave
feedback/suggestions for it.







Re: [GSoC] IUri Implementations

2010-04-07 Thread Thomas Mullaly

 In general, the idea looks right, that's how it probably should be
  implemented. This is an implementation detail through. The bigger and
 more important problem is URI parsing and canonicalization. That's where
 most of work needs to be done. In this case tests will be also very
 important. You don't know how it should work until you have a test. The
 first step would be to write a test infrastructure some tests (adding
 new test shouldn't be harder than filling a table with more data). Once
 it's done, you'll be able to decide on best way to implement parser and
 IUri interface. The project should result in many tests and good support
 for at least more useful flags and IUri functions.


Hi Jacek,

Sorry for my delayed response. Thank you for your suggestions.

For the testing infrastructure, I was thinking about writing a few Windows
programs that use Microsoft's IUri implementation to generate the results
that my testing infrastructure would use to make sure my implementation is
working correctly. Is this the right approach or would you recommend doing
it another way?

Also, I have finished a rough draft of my proposal and I was wondering if it
would appropriate to post to it to the mailing list in order to receive
feedback from you and others.



[GSoC] IUri Implementations

2010-03-30 Thread Thomas Mullaly
Hi, my name is Thomas Mullaly and I am a undergraduate in the Computer 
Science department at Kent State University and I would very much like 
to participate in this years GSoC. I saw under your project ideas page 
that the IUri API still needs implemented and I thought that this would 
be a good project for me, but, before I submit a proposal on it I have a 
few questions about the project itself.


Firstly, on the project page it says that the main goal is to have the 
IUri interface and CreateUri function implemented, but, on MSDN they 
also have functions and interfaces for creating/manipulating 
IUriBuilder's and I was wondering if these were also part of the project 
goals. If not can they be or would this be to ambitious to have finished 
by the end of the summer.



Secondly (more of a design question), I see that the Uri structure and 
functions are already stubbed out in the dlls/urlmon/uri.c file and I 
was thinking for my implementation I would add another BSTR* member to 
the Uri struct, which will point to the encoded version of the URI 
(which will be generated during the CreateUri() call). Since most of the 
functions that interact with the IUri return components of the URI (e.g. 
scheme, host, query, etc.) I was thinking about adding more data members 
to the Uri struct which store the location in the encoded Uri string 
where each component exists (or -1 if it does not exist) and by doing 
this the runtimes of the IUri functions will be reduced since the 
function will already know where to look inside the encoded string for 
the component it needs. A drawback to this design is that each Uri 
struct will be bloated with a decent amount of ints which may or may not 
be used depending on the type of the URI that the IUri represents. The 
second approach I was thinking of is to not store any locations inside 
the Uri struct and to compute them on the fly every time the IUri is 
queried for one of its components, this would result in a smaller memory 
footprint of the Uri structure but will increase the runtimes of all the 
functions that access the URI. I was wondering if anyone might have 
suggestions for which way they think might be better.


Any input will be greatly appreciated!


-Thomas Mullaly




Re: [GSoC] IUri Implementations

2010-03-30 Thread Thomas Mullaly


You could use dynamic array for that or a list with a Uri_PROPERTY 
value as a key for example and a data as an offset and length. Another 
way is to compute each property offset only when it's requested and 
store it. An obvious bad case for that is a long uri. So probably one 
pass property computation while building IUri instance is not bad.


I like the idea of making a lightweight data structure which stores the 
offset and length for each component property. I'd imagine it would look 
something like this:


typedef struct  {
   DWORD offset;
   DWORD length;
} UriComponent;

Although it becomes a little more tricky on how to store the 
UriComponents, but, I have a few ideas if anyone has any suggestions.


I do like the idea of using an array inside the Uri struct to store the 
UriComponents but not all of the values in the Uri_PROPERTY enum 
actually mean anything (at least thats what I have gathered from reading 
the MSDN docs), like the  Uri_PROPERTY_STRING_START and the 
Uri_PROPERTY_STRING_LAST are just there to say all the enum values 
between  = START and  = LAST correspond the string components of the URI.


So I'm thinking the Uri struct should have a constant size array of 
UriComponents of length Uri_PROPERTY_STRING_LAST (which would be 15.. 
correct me if I'm wrong).


So it would look something like...

typedef struct {
   /** The other stuff */

   BSTR *uri;
   UriComponents components[15];
} Uri;

and then for the GetPropertyBSTR(BSTR *component, Uri_PROPERTY prop) 
function you could just have something like.


if(prop = Uri_PROPERTY_START  prop = Uri_PROPERTY_LAST) {
   UriComponent comp;
   comp = uri-components[prop];

   /** Parse the component out */
}

And that should get you the necessary offsets and lengths for the 
component you need.


I also like the idea suggested before using a one-pass solution to find 
everything when the Uri is constructed.



Thank you for the quick responses and suggestions, I hope to have a 
proposal ready in the next few days.