test506: verify that CURLOPT_COOKIELIST takes share lock
It doesn't right now: http://curl.haxx.se/bug/view.cgi?id=1215
This commit is contained in:
parent
5fc24a5297
commit
03a3dd9ee3
@ -80,45 +80,47 @@ CURLSHOPT_UNLOCKFUNC
|
|||||||
CURLSHOPT_USERDATA
|
CURLSHOPT_USERDATA
|
||||||
CURL_LOCK_DATA_COOKIE
|
CURL_LOCK_DATA_COOKIE
|
||||||
CURL_LOCK_DATA_DNS
|
CURL_LOCK_DATA_DNS
|
||||||
*** run 1
|
|
||||||
CURLOPT_SHARE
|
CURLOPT_SHARE
|
||||||
lock: share [Pigs in space]: 0
|
lock: share [Pigs in space]: 0
|
||||||
unlock: share [Pigs in space]: 1
|
unlock: share [Pigs in space]: 1
|
||||||
PERFORM
|
CURLOPT_COOKIELIST injected_and_clobbered
|
||||||
lock: dns [Pigs in space]: 2
|
lock: cookie [Pigs in space]: 2
|
||||||
unlock: dns [Pigs in space]: 3
|
unlock: cookie [Pigs in space]: 3
|
||||||
lock: dns [Pigs in space]: 4
|
CURLOPT_COOKIELIST ALL
|
||||||
unlock: dns [Pigs in space]: 5
|
lock: cookie [Pigs in space]: 4
|
||||||
|
unlock: cookie [Pigs in space]: 5
|
||||||
|
CURLOPT_COOKIELIST session
|
||||||
lock: cookie [Pigs in space]: 6
|
lock: cookie [Pigs in space]: 6
|
||||||
unlock: cookie [Pigs in space]: 7
|
unlock: cookie [Pigs in space]: 7
|
||||||
|
CURLOPT_COOKIELIST injected
|
||||||
lock: cookie [Pigs in space]: 8
|
lock: cookie [Pigs in space]: 8
|
||||||
unlock: cookie [Pigs in space]: 9
|
unlock: cookie [Pigs in space]: 9
|
||||||
|
CURLOPT_COOKIELIST SESS
|
||||||
lock: cookie [Pigs in space]: 10
|
lock: cookie [Pigs in space]: 10
|
||||||
unlock: cookie [Pigs in space]: 11
|
unlock: cookie [Pigs in space]: 11
|
||||||
|
CLEANUP
|
||||||
lock: cookie [Pigs in space]: 12
|
lock: cookie [Pigs in space]: 12
|
||||||
unlock: cookie [Pigs in space]: 13
|
unlock: cookie [Pigs in space]: 13
|
||||||
run 1: set cookie 1, 2 and 3
|
lock: share [Pigs in space]: 14
|
||||||
lock: dns [Pigs in space]: 14
|
unlock: share [Pigs in space]: 15
|
||||||
unlock: dns [Pigs in space]: 15
|
*** run 1
|
||||||
CLEANUP
|
|
||||||
lock: cookie [Pigs in space]: 16
|
|
||||||
unlock: cookie [Pigs in space]: 17
|
|
||||||
lock: share [Pigs in space]: 18
|
|
||||||
unlock: share [Pigs in space]: 19
|
|
||||||
*** run 2
|
|
||||||
CURLOPT_SHARE
|
CURLOPT_SHARE
|
||||||
lock: share [Pigs in space]: 20
|
lock: share [Pigs in space]: 16
|
||||||
unlock: share [Pigs in space]: 21
|
unlock: share [Pigs in space]: 17
|
||||||
PERFORM
|
PERFORM
|
||||||
lock: dns [Pigs in space]: 22
|
lock: dns [Pigs in space]: 18
|
||||||
unlock: dns [Pigs in space]: 23
|
unlock: dns [Pigs in space]: 19
|
||||||
|
lock: dns [Pigs in space]: 20
|
||||||
|
unlock: dns [Pigs in space]: 21
|
||||||
|
lock: cookie [Pigs in space]: 22
|
||||||
|
unlock: cookie [Pigs in space]: 23
|
||||||
lock: cookie [Pigs in space]: 24
|
lock: cookie [Pigs in space]: 24
|
||||||
unlock: cookie [Pigs in space]: 25
|
unlock: cookie [Pigs in space]: 25
|
||||||
lock: cookie [Pigs in space]: 26
|
lock: cookie [Pigs in space]: 26
|
||||||
unlock: cookie [Pigs in space]: 27
|
unlock: cookie [Pigs in space]: 27
|
||||||
lock: cookie [Pigs in space]: 28
|
lock: cookie [Pigs in space]: 28
|
||||||
unlock: cookie [Pigs in space]: 29
|
unlock: cookie [Pigs in space]: 29
|
||||||
run 2: set cookie 4 and 5
|
run 1: set cookie 1, 2 and 3
|
||||||
lock: dns [Pigs in space]: 30
|
lock: dns [Pigs in space]: 30
|
||||||
unlock: dns [Pigs in space]: 31
|
unlock: dns [Pigs in space]: 31
|
||||||
CLEANUP
|
CLEANUP
|
||||||
@ -126,11 +128,10 @@ lock: cookie [Pigs in space]: 32
|
|||||||
unlock: cookie [Pigs in space]: 33
|
unlock: cookie [Pigs in space]: 33
|
||||||
lock: share [Pigs in space]: 34
|
lock: share [Pigs in space]: 34
|
||||||
unlock: share [Pigs in space]: 35
|
unlock: share [Pigs in space]: 35
|
||||||
*** run 3
|
*** run 2
|
||||||
CURLOPT_SHARE
|
CURLOPT_SHARE
|
||||||
lock: share [Pigs in space]: 36
|
lock: share [Pigs in space]: 36
|
||||||
unlock: share [Pigs in space]: 37
|
unlock: share [Pigs in space]: 37
|
||||||
CURLOPT_COOKIEJAR
|
|
||||||
PERFORM
|
PERFORM
|
||||||
lock: dns [Pigs in space]: 38
|
lock: dns [Pigs in space]: 38
|
||||||
unlock: dns [Pigs in space]: 39
|
unlock: dns [Pigs in space]: 39
|
||||||
@ -140,21 +141,48 @@ lock: cookie [Pigs in space]: 42
|
|||||||
unlock: cookie [Pigs in space]: 43
|
unlock: cookie [Pigs in space]: 43
|
||||||
lock: cookie [Pigs in space]: 44
|
lock: cookie [Pigs in space]: 44
|
||||||
unlock: cookie [Pigs in space]: 45
|
unlock: cookie [Pigs in space]: 45
|
||||||
run 3: overwrite cookie 1 and 4
|
run 2: set cookie 4 and 5
|
||||||
lock: dns [Pigs in space]: 46
|
lock: dns [Pigs in space]: 46
|
||||||
unlock: dns [Pigs in space]: 47
|
unlock: dns [Pigs in space]: 47
|
||||||
try SHARE_CLEANUP...
|
|
||||||
lock: share [Pigs in space]: 48
|
|
||||||
unlock: share [Pigs in space]: 49
|
|
||||||
SHARE_CLEANUP failed, correct
|
|
||||||
CLEANUP
|
CLEANUP
|
||||||
lock: cookie [Pigs in space]: 50
|
lock: cookie [Pigs in space]: 48
|
||||||
unlock: cookie [Pigs in space]: 51
|
unlock: cookie [Pigs in space]: 49
|
||||||
|
lock: share [Pigs in space]: 50
|
||||||
|
unlock: share [Pigs in space]: 51
|
||||||
|
*** run 3
|
||||||
|
CURLOPT_SHARE
|
||||||
lock: share [Pigs in space]: 52
|
lock: share [Pigs in space]: 52
|
||||||
unlock: share [Pigs in space]: 53
|
unlock: share [Pigs in space]: 53
|
||||||
|
CURLOPT_COOKIEJAR
|
||||||
|
CURLOPT_COOKIELIST FLUSH
|
||||||
|
lock: cookie [Pigs in space]: 54
|
||||||
|
lock: cookie [Pigs in space]: 55
|
||||||
|
unlock: cookie [Pigs in space]: 56
|
||||||
|
unlock: cookie [Pigs in space]: 57
|
||||||
|
PERFORM
|
||||||
|
lock: dns [Pigs in space]: 58
|
||||||
|
unlock: dns [Pigs in space]: 59
|
||||||
|
lock: cookie [Pigs in space]: 60
|
||||||
|
unlock: cookie [Pigs in space]: 61
|
||||||
|
lock: cookie [Pigs in space]: 62
|
||||||
|
unlock: cookie [Pigs in space]: 63
|
||||||
|
lock: cookie [Pigs in space]: 64
|
||||||
|
unlock: cookie [Pigs in space]: 65
|
||||||
|
run 3: overwrite cookie 1 and 4
|
||||||
|
lock: dns [Pigs in space]: 66
|
||||||
|
unlock: dns [Pigs in space]: 67
|
||||||
|
try SHARE_CLEANUP...
|
||||||
|
lock: share [Pigs in space]: 68
|
||||||
|
unlock: share [Pigs in space]: 69
|
||||||
|
SHARE_CLEANUP failed, correct
|
||||||
|
CLEANUP
|
||||||
|
lock: cookie [Pigs in space]: 70
|
||||||
|
unlock: cookie [Pigs in space]: 71
|
||||||
|
lock: share [Pigs in space]: 72
|
||||||
|
unlock: share [Pigs in space]: 73
|
||||||
SHARE_CLEANUP
|
SHARE_CLEANUP
|
||||||
lock: share [Pigs in space]: 54
|
lock: share [Pigs in space]: 74
|
||||||
unlock: share [Pigs in space]: 55
|
unlock: share [Pigs in space]: 75
|
||||||
GLOBAL_CLEANUP
|
GLOBAL_CLEANUP
|
||||||
</stdout>
|
</stdout>
|
||||||
<stderr>
|
<stderr>
|
||||||
@ -165,6 +193,7 @@ http://%HOSTIP:%HTTPPORT/506
|
|||||||
# http://curl.haxx.se/docs/http-cookies.html
|
# http://curl.haxx.se/docs/http-cookies.html
|
||||||
# This file was generated by libcurl! Edit at your own risk.
|
# This file was generated by libcurl! Edit at your own risk.
|
||||||
|
|
||||||
|
.host.foo.com TRUE / FALSE 1896263787 injected yes
|
||||||
.foo.com TRUE / FALSE 1993463787 test1 overwritten1
|
.foo.com TRUE / FALSE 1993463787 test1 overwritten1
|
||||||
.host.foo.com TRUE / FALSE 1896263787 test2 two
|
.host.foo.com TRUE / FALSE 1896263787 test2 two
|
||||||
.foo.com TRUE / FALSE 1896263787 test3 three
|
.foo.com TRUE / FALSE 1896263787 test3 three
|
||||||
|
@ -202,6 +202,32 @@ int test(char *URL)
|
|||||||
return TEST_ERR_MAJOR_BAD;
|
return TEST_ERR_MAJOR_BAD;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* initial cookie manipulation */
|
||||||
|
if ((curl = curl_easy_init()) == NULL) {
|
||||||
|
fprintf(stderr, "curl_easy_init() failed\n");
|
||||||
|
curl_share_cleanup(share);
|
||||||
|
curl_global_cleanup();
|
||||||
|
return TEST_ERR_MAJOR_BAD;
|
||||||
|
}
|
||||||
|
printf( "CURLOPT_SHARE\n" );
|
||||||
|
test_setopt( curl, CURLOPT_SHARE, share );
|
||||||
|
printf( "CURLOPT_COOKIELIST injected_and_clobbered\n" );
|
||||||
|
test_setopt( curl, CURLOPT_COOKIELIST,
|
||||||
|
"Set-Cookie: injected_and_clobbered=yes; "
|
||||||
|
"domain=host.foo.com; expires=Sat Feb 2 11:56:27 GMT 2030" );
|
||||||
|
printf( "CURLOPT_COOKIELIST ALL\n" );
|
||||||
|
test_setopt( curl, CURLOPT_COOKIELIST, "ALL" );
|
||||||
|
printf( "CURLOPT_COOKIELIST session\n" );
|
||||||
|
test_setopt( curl, CURLOPT_COOKIELIST, "Set-Cookie: session=elephants" );
|
||||||
|
printf( "CURLOPT_COOKIELIST injected\n" );
|
||||||
|
test_setopt( curl, CURLOPT_COOKIELIST,
|
||||||
|
"Set-Cookie: injected=yes; domain=host.foo.com; "
|
||||||
|
"expires=Sat Feb 2 11:56:27 GMT 2030" );
|
||||||
|
printf( "CURLOPT_COOKIELIST SESS\n" );
|
||||||
|
test_setopt( curl, CURLOPT_COOKIELIST, "SESS" );
|
||||||
|
printf( "CLEANUP\n" );
|
||||||
|
curl_easy_cleanup( curl );
|
||||||
|
|
||||||
|
|
||||||
res = 0;
|
res = 0;
|
||||||
|
|
||||||
@ -238,6 +264,8 @@ int test(char *URL)
|
|||||||
test_setopt( curl, CURLOPT_SHARE, share );
|
test_setopt( curl, CURLOPT_SHARE, share );
|
||||||
printf( "CURLOPT_COOKIEJAR\n" );
|
printf( "CURLOPT_COOKIEJAR\n" );
|
||||||
test_setopt( curl, CURLOPT_COOKIEJAR, JAR );
|
test_setopt( curl, CURLOPT_COOKIEJAR, JAR );
|
||||||
|
printf( "CURLOPT_COOKIELIST FLUSH\n" );
|
||||||
|
test_setopt( curl, CURLOPT_COOKIELIST, "FLUSH" );
|
||||||
|
|
||||||
printf( "PERFORM\n" );
|
printf( "PERFORM\n" );
|
||||||
curl_easy_perform( curl );
|
curl_easy_perform( curl );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user