[windows_kext] Fix minor problems

This commit is contained in:
Vladimir Stoilov 2024-07-01 15:06:54 +03:00
parent 89657123ec
commit 2e3304809f
4 changed files with 10 additions and 4 deletions
service/firewall/interception/windowskext2
windows_kext
kextinterface
protocol/src

View file

@ -39,7 +39,11 @@ func Start() error {
} }
// Start service and open file // Start service and open file
service.Start(true) err = service.Start(true)
if err != nil {
log.Errorf("failed to start service: %s", err)
}
kextFile, err = service.OpenFile(1024) kextFile, err = service.OpenFile(1024)
if err != nil { if err != nil {
return fmt.Errorf("failed to open driver: %w", err) return fmt.Errorf("failed to open driver: %w", err)

View file

@ -11,6 +11,7 @@ import (
"syscall" "syscall"
"time" "time"
"github.com/safing/portmaster/base/log"
"golang.org/x/sys/windows" "golang.org/x/sys/windows"
) )
@ -221,7 +222,7 @@ func CreateKextService(driverName string, driverPath string) (*KextService, erro
// Check if there is an old service. // Check if there is an old service.
service, err := windows.OpenService(manager, &driverNameU16[0], windows.SERVICE_ALL_ACCESS) service, err := windows.OpenService(manager, &driverNameU16[0], windows.SERVICE_ALL_ACCESS)
if err == nil { if err == nil {
fmt.Println("kext: old driver service was found") log.Warning("kext: old driver service was found")
oldService := &KextService{handle: service, driverName: driverName} oldService := &KextService{handle: service, driverName: driverName}
oldService.Stop(true) oldService.Stop(true)
err = oldService.Delete() err = oldService.Delete()
@ -234,7 +235,7 @@ func CreateKextService(driverName string, driverPath string) (*KextService, erro
} }
service = winInvalidHandleValue service = winInvalidHandleValue
fmt.Println("kext: old driver service was deleted successfully") log.Warning("kext: old driver service was deleted successfully")
} }
driverPathU16, err := syscall.UTF16FromString(driverPath) driverPathU16, err := syscall.UTF16FromString(driverPath)

View file

@ -22,6 +22,7 @@ func TestRustInfoFile(t *testing.T) {
for { for {
info, err := RecvInfo(file) info, err := RecvInfo(file)
// First info should be with invalid size. // First info should be with invalid size.
// This tests if invalid info data is handled properly.
if first { if first {
if !errors.Is(err, ErrUnexpectedInfoSize) { if !errors.Is(err, ErrUnexpectedInfoSize) {
t.Errorf("unexpected error: %s\n", err) t.Errorf("unexpected error: %s\n", err)

View file

@ -441,7 +441,7 @@ fn generate_test_info_file() -> Result<(), std::io::Error> {
for _ in 0..selected.capacity() { for _ in 0..selected.capacity() {
selected.push(enums.choose(&mut rng).unwrap().clone()); selected.push(enums.choose(&mut rng).unwrap().clone());
} }
// Write wrong size data. // Write wrong size data. To make sure that mismatches between kext and portmaster are handled properly.
let mut info = connection_info_v6( let mut info = connection_info_v6(
1, 1,
2, 2,