From fc074343f8d34fe53f9ca60925c493eb2a2fa1d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Mei=C3=9Fner?= Date: Tue, 13 Apr 2021 21:24:39 +0200 Subject: [PATCH] [process][linux] Fix fillFromStatusWithContext() on systems with 128 bit signal masks. --- process/process_linux.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/process/process_linux.go b/process/process_linux.go index df460dd..5550dd4 100644 --- a/process/process_linux.go +++ b/process/process_linux.go @@ -935,30 +935,45 @@ func (p *Process) fillFromStatusWithContext(ctx context.Context) error { } p.memInfo.Locked = v * 1024 case "SigPnd": + if len(value) > 16 { + value = value[len(value)-16:] + } v, err := strconv.ParseUint(value, 16, 64) if err != nil { return err } p.sigInfo.PendingThread = v case "ShdPnd": + if len(value) > 16 { + value = value[len(value)-16:] + } v, err := strconv.ParseUint(value, 16, 64) if err != nil { return err } p.sigInfo.PendingProcess = v case "SigBlk": + if len(value) > 16 { + value = value[len(value)-16:] + } v, err := strconv.ParseUint(value, 16, 64) if err != nil { return err } p.sigInfo.Blocked = v case "SigIgn": + if len(value) > 16 { + value = value[len(value)-16:] + } v, err := strconv.ParseUint(value, 16, 64) if err != nil { return err } p.sigInfo.Ignored = v case "SigCgt": + if len(value) > 16 { + value = value[len(value)-16:] + } v, err := strconv.ParseUint(value, 16, 64) if err != nil { return err