readonly.go 504 B

1234567891011121314151617181920
  1. //go:build !s390x && !ppc64 && !ppc64le
  2. package fiber
  3. import (
  4. "unsafe"
  5. )
  6. //go:linkname runtimeRodata runtime.rodata
  7. var runtimeRodata byte
  8. //go:linkname runtimeErodata runtime.erodata
  9. var runtimeErodata byte
  10. func isReadOnly(p unsafe.Pointer) bool {
  11. start := uintptr(unsafe.Pointer(&runtimeRodata)) //nolint:gosec // converting runtime symbols
  12. end := uintptr(unsafe.Pointer(&runtimeErodata)) //nolint:gosec // converting runtime symbols
  13. addr := uintptr(p)
  14. return addr >= start && addr < end
  15. }