Skip to content

Commit d344e35

Browse files
committed
Fixed issues caused by adding goto
1 parent a45c996 commit d344e35

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed

implant/sliver/handlers/handlers_linux.go

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -180,8 +180,18 @@ func chmodHandler(data []byte, resp RPCResponse) {
180180
}
181181

182182
func chownHandler(data []byte, resp RPCResponse) {
183+
184+
// variable definitions so goto won't break
185+
var uid_str string
186+
var gid_str string
187+
var gid uint64
188+
var uid uint64
189+
var err error
190+
var usr *user.User
191+
var grp *user.Group
192+
183193
chownReq := &sliverpb.ChownReq{}
184-
err := proto.Unmarshal(data, chownReq)
194+
err = proto.Unmarshal(data, chownReq)
185195
if err != nil {
186196
// {{if .Config.Debug}}
187197
log.Printf("error decoding message: %v", err)
@@ -200,27 +210,27 @@ func chownHandler(data []byte, resp RPCResponse) {
200210
goto finished
201211
}
202212

203-
uid_str := chownReq.Uid
204-
usr, err := user.Lookup(uid_str)
213+
uid_str = chownReq.Uid
214+
usr, err = user.Lookup(uid_str)
205215
if err != nil {
206216
chown.Response.Err = err.Error()
207217
goto finished
208218
}
209219

210-
uid, err := strconv.ParseInt(usr.Uid, 10, 32)
220+
uid, err = strconv.ParseUint(usr.Uid, 10, 32)
211221
if err != nil {
212222
chown.Response.Err = err.Error()
213223
goto finished
214224
}
215225

216-
gid_str := chownReq.Gid
217-
grp, err := user.LookupGroup(gid_str)
226+
gid_str = chownReq.Gid
227+
grp, err = user.LookupGroup(gid_str)
218228
if err != nil {
219-
chown.Response.Err = err.Error()
229+
chown.Response.Err = err.Error()
220230
goto finished
221231
}
222232

223-
gid, err := strconv.ParseUint(grp.Gid, 10, 32)
233+
gid, err = strconv.ParseUint(grp.Gid, 10, 32)
224234
if err != nil {
225235
chown.Response.Err = err.Error()
226236
goto finished

0 commit comments

Comments
 (0)