fix: replace syscall.O_NOFOLLOW with utils.OpenFileSecure for Windows (pull/5764) (#5776)

This commit is contained in:
Dennis Mwangi 2025-04-28 13:41:00 +03:00 committed by GitHub
parent 6c8515fe36
commit 5d5a166efd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 14 additions and 18 deletions

View File

@ -36,6 +36,7 @@ import (
"crypto/tls" "crypto/tls"
"encoding/json" "encoding/json"
"encoding/xml" "encoding/xml"
"github.com/beego/beego/v2/core/utils"
"io" "io"
"mime/multipart" "mime/multipart"
"net" "net"
@ -44,7 +45,6 @@ import (
"os" "os"
"path/filepath" "path/filepath"
"strings" "strings"
"syscall"
"time" "time"
"gopkg.in/yaml.v3" "gopkg.in/yaml.v3"
@ -616,7 +616,7 @@ func (b *BeegoHTTPRequest) ToFile(filename string) error {
if err != nil { if err != nil {
return err return err
} }
f, err := os.OpenFile(filename, os.O_RDWR|os.O_CREATE|syscall.O_NOFOLLOW, 0600) f, err := utils.OpenFileSecure(filename, os.O_RDWR|os.O_CREATE, 0600)
if err != nil { if err != nil {
return err return err
} }

View File

@ -18,14 +18,13 @@ import (
"encoding/json" "encoding/json"
"errors" "errors"
"fmt" "fmt"
"github.com/beego/beego/v2/core/utils"
"github.com/mitchellh/mapstructure"
"io" "io"
"os" "os"
"strconv" "strconv"
"strings" "strings"
"sync" "sync"
"syscall"
"github.com/mitchellh/mapstructure"
"github.com/beego/beego/v2/core/config" "github.com/beego/beego/v2/core/config"
"github.com/beego/beego/v2/core/logs" "github.com/beego/beego/v2/core/logs"
@ -246,7 +245,7 @@ func (c *JSONConfigContainer) GetSection(section string) (map[string]string, err
// SaveConfigFile save the config into file // SaveConfigFile save the config into file
func (c *JSONConfigContainer) SaveConfigFile(filename string) (err error) { func (c *JSONConfigContainer) SaveConfigFile(filename string) (err error) {
// Write configuration file by filename. // Write configuration file by filename.
f, err := os.OpenFile(filename, os.O_RDWR|os.O_CREATE|syscall.O_NOFOLLOW, 0600) f, err := utils.OpenFileSecure(filename, os.O_RDWR|os.O_CREATE, 0600)
if err != nil { if err != nil {
return err return err
} }

View File

@ -15,11 +15,10 @@
package toml package toml
import ( import (
"github.com/beego/beego/v2/core/utils"
"github.com/pelletier/go-toml"
"os" "os"
"strings" "strings"
"syscall"
"github.com/pelletier/go-toml"
"github.com/beego/beego/v2/core/config" "github.com/beego/beego/v2/core/config"
) )
@ -308,7 +307,7 @@ func (c *configContainer) OnChange(key string, fn func(value string)) {
// SaveConfigFile create or override the file // SaveConfigFile create or override the file
func (c *configContainer) SaveConfigFile(filename string) error { func (c *configContainer) SaveConfigFile(filename string) error {
// Write configuration file by filename. // Write configuration file by filename.
f, err := os.OpenFile(filename, os.O_RDWR|os.O_CREATE|syscall.O_NOFOLLOW, 0600) f, err := utils.OpenFileSecure(filename, os.O_RDWR|os.O_CREATE, 0600)
if err != nil { if err != nil {
return err return err
} }

View File

@ -32,13 +32,12 @@ import (
"encoding/xml" "encoding/xml"
"errors" "errors"
"fmt" "fmt"
"github.com/beego/beego/v2/core/utils"
"github.com/mitchellh/mapstructure"
"os" "os"
"strconv" "strconv"
"strings" "strings"
"sync" "sync"
"syscall"
"github.com/mitchellh/mapstructure"
"github.com/beego/x2j" "github.com/beego/x2j"
@ -248,7 +247,7 @@ func (c *ConfigContainer) GetSection(section string) (map[string]string, error)
// SaveConfigFile save the config into file // SaveConfigFile save the config into file
func (c *ConfigContainer) SaveConfigFile(filename string) (err error) { func (c *ConfigContainer) SaveConfigFile(filename string) (err error) {
// Write configuration file by filename. // Write configuration file by filename.
f, err := os.OpenFile(filename, os.O_RDWR|os.O_CREATE|syscall.O_NOFOLLOW, 0600) f, err := utils.OpenFileSecure(filename, os.O_RDWR|os.O_CREATE, 0600)
if err != nil { if err != nil {
return err return err
} }

View File

@ -26,12 +26,11 @@ package yaml
import ( import (
"errors" "errors"
"fmt" "fmt"
"github.com/beego/beego/v2/core/utils"
"gopkg.in/yaml.v3"
"os" "os"
"strings" "strings"
"sync" "sync"
"syscall"
"gopkg.in/yaml.v3"
"github.com/beego/beego/v2/core/config" "github.com/beego/beego/v2/core/config"
"github.com/beego/beego/v2/core/logs" "github.com/beego/beego/v2/core/logs"
@ -292,7 +291,7 @@ func (c *ConfigContainer) GetSection(section string) (map[string]string, error)
// SaveConfigFile save the config into file // SaveConfigFile save the config into file
func (c *ConfigContainer) SaveConfigFile(filename string) (err error) { func (c *ConfigContainer) SaveConfigFile(filename string) (err error) {
// Write configuration file by filename. // Write configuration file by filename.
f, err := os.OpenFile(filename, os.O_RDWR|os.O_CREATE|syscall.O_NOFOLLOW, 0600) f, err := utils.OpenFileSecure(filename, os.O_RDWR|os.O_CREATE, 0600)
if err != nil { if err != nil {
return err return err
} }