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"
"encoding/json"
"encoding/xml"
"github.com/beego/beego/v2/core/utils"
"io"
"mime/multipart"
"net"
@ -44,7 +45,6 @@ import (
"os"
"path/filepath"
"strings"
"syscall"
"time"
"gopkg.in/yaml.v3"
@ -616,7 +616,7 @@ func (b *BeegoHTTPRequest) ToFile(filename string) error {
if err != nil {
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 {
return err
}

View File

@ -18,14 +18,13 @@ import (
"encoding/json"
"errors"
"fmt"
"github.com/beego/beego/v2/core/utils"
"github.com/mitchellh/mapstructure"
"io"
"os"
"strconv"
"strings"
"sync"
"syscall"
"github.com/mitchellh/mapstructure"
"github.com/beego/beego/v2/core/config"
"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
func (c *JSONConfigContainer) SaveConfigFile(filename string) (err error) {
// 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 {
return err
}

View File

@ -15,11 +15,10 @@
package toml
import (
"github.com/beego/beego/v2/core/utils"
"github.com/pelletier/go-toml"
"os"
"strings"
"syscall"
"github.com/pelletier/go-toml"
"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
func (c *configContainer) SaveConfigFile(filename string) error {
// 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 {
return err
}

View File

@ -32,13 +32,12 @@ import (
"encoding/xml"
"errors"
"fmt"
"github.com/beego/beego/v2/core/utils"
"github.com/mitchellh/mapstructure"
"os"
"strconv"
"strings"
"sync"
"syscall"
"github.com/mitchellh/mapstructure"
"github.com/beego/x2j"
@ -248,7 +247,7 @@ func (c *ConfigContainer) GetSection(section string) (map[string]string, error)
// SaveConfigFile save the config into file
func (c *ConfigContainer) SaveConfigFile(filename string) (err error) {
// 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 {
return err
}

View File

@ -26,12 +26,11 @@ package yaml
import (
"errors"
"fmt"
"github.com/beego/beego/v2/core/utils"
"gopkg.in/yaml.v3"
"os"
"strings"
"sync"
"syscall"
"gopkg.in/yaml.v3"
"github.com/beego/beego/v2/core/config"
"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
func (c *ConfigContainer) SaveConfigFile(filename string) (err error) {
// 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 {
return err
}