Skip to content

Commit fa869a9

Browse files
authored
Merge pull request #1333 from chaitin/ci-fix-sixth-scan-findings
fix(management,mcp-server): stop the request chain on a failed session
2 parents 7890452 + 6ec3a6e commit fa869a9

7 files changed

Lines changed: 28 additions & 18 deletions

File tree

‎management/tcontrollerd/utils/file.go‎

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -84,16 +84,16 @@ func RenameCopyFromIO(src io.Reader, dstPath string, perm os.FileMode) error {
8484
renamed := false
8585
defer func() {
8686
if !renamed {
87-
os.Remove(tmpName)
87+
_ = os.Remove(tmpName)
8888
}
8989
}()
9090

9191
if err = tmpFile.Chmod(perm); err != nil {
92-
tmpFile.Close()
92+
_ = tmpFile.Close()
9393
return err
9494
}
9595
if _, err = io.Copy(tmpFile, src); err != nil {
96-
tmpFile.Close()
96+
_ = tmpFile.Close()
9797
return err
9898
}
9999
if err = tmpFile.Close(); err != nil {
@@ -131,11 +131,8 @@ func CopyFile(srcPath, dstPath string) error {
131131
if err != nil {
132132
return err
133133
}
134-
defer func(srcFile *os.File) {
135-
err := srcFile.Close()
136-
if err != nil {
137-
138-
}
134+
defer func(f *os.File) {
135+
_ = f.Close()
139136
}(srcFile)
140137

141138
fileInfo, err := srcFile.Stat()

‎management/webserver/api/cert.go‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,15 +122,17 @@ func saveUploadedFile(file *multipart.FileHeader, dstPath string, mode os.FileMo
122122
if err != nil {
123123
return err
124124
}
125-
defer src.Close()
125+
defer func() {
126+
_ = src.Close()
127+
}()
126128

127129
dst, err := os.OpenFile(dstPath, os.O_WRONLY|os.O_CREATE|os.O_EXCL, mode)
128130
if err != nil {
129131
return err
130132
}
131133

132134
if _, err = io.Copy(dst, src); err != nil {
133-
dst.Close()
135+
_ = dst.Close()
134136
return err
135137
}
136138

‎management/webserver/api/website.go‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -202,13 +202,15 @@ func GetWebsite(ctx *gin.Context) {
202202
var statistics []model.SystemStatistics
203203
var websiteIds []string
204204
for _, i := range websiteList {
205-
websiteIds = append(websiteIds, strconv.Itoa(int(i.ID)))
205+
// FormatUint renders the identifier without narrowing it: it is a uint,
206+
// and going through int would truncate it on a 32 bit build.
207+
websiteIds = append(websiteIds, strconv.FormatUint(uint64(i.ID), 10))
206208
}
207209
db.Where("created_at >= date_trunc('day',now())").Where("website in (?)", websiteIds).Find(&statistics)
208210

209211
for i, website := range websiteList {
210212
for _, j := range statistics {
211-
if strconv.Itoa(int(website.ID)) == j.Website {
213+
if strconv.FormatUint(uint64(website.ID), 10) == j.Website {
212214
if j.Type == "website-req" {
213215
websiteList[i].ReqValue = j.Value
214216
} else if j.Type == "website-denied" {

‎management/webserver/middleware/auth.go‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@ func AuthRequired(c *gin.Context) {
2626

2727
if err := session.Save(); err != nil {
2828
response.Error(c, response.JSONBody{Err: response.ErrInternalError, Msg: "Error occurred when creating sessions"}, http.StatusInternalServerError)
29+
// The request has to stop here. Gin runs the handlers that follow a
30+
// middleware from the same loop that called this one, so returning
31+
// without Abort would still let the request reach the protected handler
32+
// even though the answer above already reported a failure.
33+
c.Abort()
2934
return
3035
}
3136

‎management/webserver/rpc/auth.go‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,11 @@ func loadOrCreateToken(path string) (string, error) {
9090
}
9191
value := hex.EncodeToString(token)
9292

93-
if err := os.MkdirAll(filepath.Dir(path), 0755); err != nil {
93+
// 0750: the directory holds the secret of the control channel, so it is not
94+
// left traversable by other users. It is a shared mount point whose mode is
95+
// normally set by the deployment, so this only applies when this call is the
96+
// one that creates it.
97+
if err := os.MkdirAll(filepath.Dir(path), 0750); err != nil {
9498
return "", err
9599
}
96100

@@ -105,7 +109,7 @@ func loadOrCreateToken(path string) (string, error) {
105109
}
106110

107111
if _, err = file.WriteString(value + "\n"); err != nil {
108-
file.Close()
112+
_ = file.Close()
109113
return "", err
110114
}
111115

‎management/webserver/utils/file.go‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,16 +62,16 @@ func RenameWriteFile(filename string, data []byte, perm os.FileMode) error {
6262
renamed := false
6363
defer func() {
6464
if !renamed {
65-
os.Remove(tmpName)
65+
_ = os.Remove(tmpName)
6666
}
6767
}()
6868

6969
if err = tmpFile.Chmod(perm); err != nil {
70-
tmpFile.Close()
70+
_ = tmpFile.Close()
7171
return err
7272
}
7373
if _, err = tmpFile.Write(data); err != nil {
74-
tmpFile.Close()
74+
_ = tmpFile.Close()
7575
return err
7676
}
7777
if err = tmpFile.Close(); err != nil {

‎mcp_server/pkg/logger/logger.go‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ func Init(cfg *Config) error {
140140
// GetLogger 获取日志实例
141141
func GetLogger() *Logger {
142142
if defaultLogger == nil {
143-
Init(nil)
143+
_ = Init(nil)
144144
}
145145

146146
if defaultLogger == nil {

0 commit comments

Comments
 (0)