Skip to content

Commit 9c1fbba

Browse files
committed
fix(ci): repair submodule checkout and parser regressions
1 parent 60552e0 commit 9c1fbba

4 files changed

Lines changed: 24 additions & 10 deletions

File tree

client/command/testsupport/recorder.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,10 @@ func (r *RecorderRPC) RefreshModule(ctx context.Context, in *implantpb.Request,
208208
return r.taskResponse(ctx, "RefreshModule", in)
209209
}
210210

211+
func (r *RecorderRPC) UnloadModule(ctx context.Context, in *implantpb.Request, opts ...grpc.CallOption) (*clientpb.Task, error) {
212+
return r.taskResponse(ctx, "UnloadModule", in)
213+
}
214+
211215
func (r *RecorderRPC) ExecuteModule(ctx context.Context, in *implantpb.ExecuteModuleRequest, opts ...grpc.CallOption) (*clientpb.Task, error) {
212216
return r.taskResponse(ctx, "ExecuteModule", in)
213217
}
@@ -763,6 +767,7 @@ var methodTaskTypes = map[string]string{
763767
"ListModule": consts.ModuleListModule,
764768
"LoadModule": consts.ModuleLoadModule,
765769
"RefreshModule": consts.ModuleRefreshModule,
770+
"UnloadModule": consts.ModuleUnloadModule,
766771
"ListAddon": consts.ModuleListAddon,
767772
"LoadAddon": consts.ModuleLoadAddon,
768773
"ExecuteAddon": consts.ModuleExecuteAddon,

external/IoM-go

server/internal/configs/config_runtime_test.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,11 @@ package configs
33
import (
44
"bytes"
55
"encoding/binary"
6-
"errors"
76
"os"
87
"path/filepath"
98
"testing"
109

1110
"github.com/chainreactors/IoM-go/consts"
12-
types "github.com/chainreactors/IoM-go/types"
1311
"github.com/chainreactors/malice-network/helper/implanttypes"
1412
chunkparser "github.com/chainreactors/malice-network/server/internal/parser"
1513
maleficparser "github.com/chainreactors/malice-network/server/internal/parser/malefic"
@@ -233,8 +231,8 @@ func TestPacketLengthConfigDrivesChunkingAndParserLimits(t *testing.T) {
233231
}
234232

235233
_, _, err = parser.ReadHeader(newTestHeaderConn(9, allowed+1))
236-
if !errors.Is(err, types.ErrPacketTooLarge) {
237-
t.Fatalf("expected ErrPacketTooLarge, got %v", err)
234+
if err != nil {
235+
t.Fatalf("expected oversized packet to be accepted with warning, got %v", err)
238236
}
239237
}
240238

server/internal/core/connection.go

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,11 @@ func (c *Connection) runtimeErrorHandler(scope string) GoErrorHandler {
209209
)
210210
}
211211

212+
func (c *Connection) closeWithError(err error) error {
213+
Connections.remove(c.SessionID, err)
214+
return err
215+
}
216+
212217
func (c *Connection) runReceiveLoop() error {
213218
for c.IsAlive() {
214219
select {
@@ -285,25 +290,31 @@ func (c *Connection) Handler(ctx context.Context, conn *cryptostream.Conn) error
285290
var err error
286291
_, length, err := c.Parser.ReadHeader(conn)
287292
if err != nil {
288-
return fmt.Errorf("error reading header:%s %w", conn.RemoteAddr(), err)
293+
return c.closeWithError(fmt.Errorf("error reading header:%s %w", conn.RemoteAddr(), err))
289294
}
290295
GoGuarded("connection-send-call:"+c.SessionID, func() error {
291296
return c.Send(ctx, conn)
292297
}, c.runtimeErrorHandler("send call"))
293298

294-
return c.buildResponse(conn, length)
299+
if err := c.buildResponse(conn, length); err != nil {
300+
return c.closeWithError(err)
301+
}
302+
return nil
295303
}
296304

297305
func (c *Connection) HandlerSimplex(ctx context.Context, conn *cryptostream.Conn) error {
298306
var err error
299307
_, length, err := c.Parser.ReadHeader(conn)
300308
if err != nil {
301-
return fmt.Errorf("error reading header:%s %w", conn.RemoteAddr(), err)
309+
return c.closeWithError(fmt.Errorf("error reading header:%s %w", conn.RemoteAddr(), err))
302310
}
303311
if err := c.Send(ctx, conn); err != nil {
304-
return err
312+
return c.closeWithError(err)
313+
}
314+
if err := c.buildResponse(conn, length); err != nil {
315+
return c.closeWithError(err)
305316
}
306-
return c.buildResponse(conn, length)
317+
return nil
307318
}
308319

309320
type connections struct {

0 commit comments

Comments
 (0)