@@ -3,6 +3,7 @@ package gitjacker
3
3
import (
4
4
"fmt"
5
5
"io/ioutil"
6
+ "net"
6
7
"net/http"
7
8
"net/url"
8
9
"os"
@@ -19,7 +20,6 @@ type vulnerableServer struct {
19
20
}
20
21
21
22
func newVulnerableServer () (* vulnerableServer , error ) {
22
-
23
23
dir , err := ioutil .TempDir (os .TempDir (), "gjtest_server" )
24
24
if err != nil {
25
25
return nil , err
@@ -50,14 +50,13 @@ func newVulnerableServer() (*vulnerableServer, error) {
50
50
return & vulnerableServer {
51
51
dir : dir ,
52
52
server : & http.Server {
53
- Addr : "127.0.0.1:9999" ,
54
53
Handler : fs ,
55
54
},
56
55
}, nil
57
56
}
58
57
59
- func (v * vulnerableServer ) Listen () error {
60
- return v .server .ListenAndServe ( )
58
+ func (v * vulnerableServer ) Listen (listener net. Listener ) error {
59
+ return v .server .Serve ( listener )
61
60
}
62
61
63
62
func (v * vulnerableServer ) Addr () string {
@@ -93,7 +92,12 @@ func TestRetrieval(t *testing.T) {
93
92
t .Fatal (err )
94
93
}
95
94
96
- go func () { _ = server .Listen () }()
95
+ listener , err := net .Listen ("tcp" , ":0" )
96
+ if err != nil {
97
+ panic (err )
98
+ }
99
+
100
+ go func () { _ = server .Listen (listener ) }()
97
101
defer func () { _ = server .Close () }()
98
102
99
103
expectedContent := "<?php\n echo 'hello';\n "
@@ -105,7 +109,7 @@ func TestRetrieval(t *testing.T) {
105
109
t .Fatal (err )
106
110
}
107
111
108
- target , err := url .Parse (fmt .Sprintf ("http://%s " , server .Addr ()))
112
+ target , err := url .Parse (fmt .Sprintf ("http://127.0.0.1:%v " , listener .Addr ().( * net. TCPAddr ). Port ))
109
113
if err != nil {
110
114
t .Fatal (err )
111
115
}
0 commit comments