From: Dietmar Maurer Date: Fri, 8 Nov 2013 07:13:49 +0000 (+0100) Subject: fix upid parser for long uptimes X-Git-Url: https://git.proxmox.com/?p=pve-common.git;a=commitdiff_plain;h=19cec2309dad9487a2fc0a679c1a2b9d9995c4ba;hp=d9184f4701f593c48813264341c446069f53a8d5 fix upid parser for long uptimes --- diff --git a/data/PVE/Tools.pm b/data/PVE/Tools.pm index 735cbde..922c0e6 100644 --- a/data/PVE/Tools.pm +++ b/data/PVE/Tools.pm @@ -765,6 +765,8 @@ sub df { sub upid_encode { my $d = shift; + # Note: pstart can be > 32bit if uptime > 497 days, so this can result in + # more that 8 characters for pstart return sprintf("UPID:%s:%08X:%08X:%08X:%s:%s:%s:", $d->{node}, $d->{pid}, $d->{pstart}, $d->{starttime}, $d->{type}, $d->{id}, $d->{user}); @@ -777,7 +779,8 @@ sub upid_decode { my $filename; # "UPID:$node:$pid:$pstart:$startime:$dtype:$id:$user" - if ($upid =~ m/^UPID:([a-zA-Z0-9]([a-zA-Z0-9\-]*[a-zA-Z0-9])?):([0-9A-Fa-f]{8}):([0-9A-Fa-f]{8}):([0-9A-Fa-f]{8}):([^:\s]+):([^:\s]*):([^:\s]+):$/) { + # Note: allow up to 9 characters for pstart (work until 20 years uptime) + if ($upid =~ m/^UPID:([a-zA-Z0-9]([a-zA-Z0-9\-]*[a-zA-Z0-9])?):([0-9A-Fa-f]{8}):([0-9A-Fa-f]{8,9}):([0-9A-Fa-f]{8}):([^:\s]+):([^:\s]*):([^:\s]+):$/) { $res->{node} = $1; $res->{pid} = hex($3); $res->{pstart} = hex($4); diff --git a/debian/changelog b/debian/changelog index d79e522..a0ce308 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,8 @@ libpve-common-perl (3.0-9) unstable; urgency=low * export regular expressions for IPv4 and IPv6 addresses + + * fix upid parser for long uptimes (> 497 days) -- Proxmox Support Team Wed, 30 Oct 2013 12:45:52 +0100