@@ -22,15 +22,26 @@ def replyable_msg(self, **kwargs):
2222 return recv , msg
2323
2424 def test_unauthorized (self ):
25+ l1 = self .router .local ()
26+
2527 service = self .klass (self .router )
26- recv , msg = self .replyable_msg ()
27- service .fetch (
28- path = '/etc/shadow' ,
29- sender = None ,
30- msg = msg ,
28+ pool = mitogen .service .Pool (
29+ router = self .router ,
30+ services = [service ],
31+ size = 1 ,
3132 )
32- e = self .assertRaises (mitogen .core .CallError ,
33- lambda : recv .get ().unpickle ())
33+ try :
34+ e = self .assertRaises (mitogen .core .CallError ,
35+ lambda : l1 .call (
36+ mitogen .service .FileService .get ,
37+ context = self .router .myself (),
38+ path = '/etc/shadow' ,
39+ out_fp = None ,
40+ )
41+ )
42+ finally :
43+ pool .stop ()
44+
3445 expect = service .unregistered_msg % ('/etc/shadow' ,)
3546 self .assertTrue (expect in e .args [0 ])
3647
@@ -85,30 +96,57 @@ def test_prefix_authorized(self):
8596 self ._validate_response (recv .get ().unpickle ())
8697
8798 def test_prefix_authorized_abspath_bad (self ):
88- recv = mitogen .core .Receiver (self .router )
99+ l1 = self .router .local ()
100+
89101 service = self .klass (self .router )
90102 service .register_prefix ('/etc' )
91- recv , msg = self . replyable_msg ()
92- service .fetch (
93- path = '/etc/foo/bar/../../../passwd' ,
94- sender = recv . to_sender () ,
95- msg = msg ,
103+
104+ pool = mitogen . service .Pool (
105+ router = self . router ,
106+ services = [ service ] ,
107+ size = 1 ,
96108 )
97- self .assertEquals (None , recv .get ().unpickle ())
109+ path = '/etc/foo/bar/../../../passwd'
110+ try :
111+ e = self .assertRaises (mitogen .core .CallError ,
112+ lambda : l1 .call (
113+ mitogen .service .FileService .get ,
114+ context = self .router .myself (),
115+ path = path ,
116+ out_fp = None ,
117+ )
118+ )
119+ finally :
120+ pool .stop ()
121+
122+ expect = service .unregistered_msg % (path ,)
123+ self .assertTrue (expect in e .args [0 ])
124+
125+ def test_prefix_authorized_abspath_good (self ):
126+ l1 = self .router .local ()
98127
99- def test_prefix_authorized_abspath_bad (self ):
100- recv = mitogen .core .Receiver (self .router )
101128 service = self .klass (self .router )
102129 service .register_prefix ('/etc' )
103- recv , msg = self .replyable_msg ()
104- service .fetch (
105- path = '/etc/../shadow' ,
106- sender = recv .to_sender (),
107- msg = msg ,
130+ path = '/etc/../shadow'
131+
132+ pool = mitogen .service .Pool (
133+ router = self .router ,
134+ services = [service ],
135+ size = 1 ,
108136 )
109- e = self .assertRaises (mitogen .core .CallError ,
110- lambda : recv .get ().unpickle ())
111- expect = service .unregistered_msg % ('/etc/../shadow' ,)
137+ try :
138+ e = self .assertRaises (mitogen .core .CallError ,
139+ lambda : l1 .call (
140+ mitogen .service .FileService .get ,
141+ context = self .router .myself (),
142+ path = path ,
143+ out_fp = None
144+ )
145+ )
146+ finally :
147+ pool .stop ()
148+
149+ expect = service .unregistered_msg % (path ,)
112150 self .assertTrue (expect in e .args [0 ])
113151
114152
0 commit comments