Files
msteinert-go-pam/utils.go
Marco Trevisan (Treviño) eac1f2d85d github/test: Run tests with address sanitizer
We have lots of cgo interaction here so better to check things fully.

This also requires manually checking for leaks, so add support for this.
2023-12-14 22:07:50 +01:00

32 lines
469 B
Go

// Package pam provides a wrapper for the PAM application API.
package pam
/*
#ifdef __SANITIZE_ADDRESS__
#include <sanitizer/lsan_interface.h>
#endif
static inline void
maybe_do_leak_check (void)
{
#ifdef __SANITIZE_ADDRESS__
__lsan_do_leak_check();
#endif
}
*/
import "C"
import (
"os"
"runtime"
"time"
)
func maybeDoLeakCheck() {
runtime.GC()
time.Sleep(time.Millisecond * 20)
if os.Getenv("GO_PAM_SKIP_LEAK_CHECK") == "" {
C.maybe_do_leak_check()
}
}