wl: check against null character
All checks were successful
Test / Create distribution (push) Successful in 23s
Test / Run NixOS test (push) Successful in 54s

Wayland library takes null terminated strings.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
Ophestra 2025-02-19 23:35:49 +09:00
parent 3c80fd2b0f
commit d0dff1cac9
Signed by: cat
SSH Key Fingerprint: SHA256:gQ67O0enBZ7UdZypgtspB2FDM1g3GVw8nX0XSdcFw8Q

View File

@ -10,7 +10,14 @@ package wl
#include "wayland-bind.h"
*/
import "C"
import "errors"
import (
"errors"
"strings"
)
var (
ErrContainsNull = errors.New("string contains null character")
)
var resErr = [...]error{
0: nil,
@ -19,6 +26,11 @@ var resErr = [...]error{
}
func bindWaylandFd(socketPath string, fd uintptr, appID, instanceID string, syncFD uintptr) error {
if hasNull(appID) || hasNull(instanceID) {
return ErrContainsNull
}
res := C.bind_wayland_fd(C.CString(socketPath), C.int(fd), C.CString(appID), C.CString(instanceID), C.int(syncFD))
return resErr[int32(res)]
}
func hasNull(s string) bool { return strings.IndexByte(s, '\x00') > -1 }