From a9f250d6a3372404cb7adb9c6d870eb085f566d0 Mon Sep 17 00:00:00 2001 From: jim-p Date: Mon, 30 Jul 2012 15:07:33 -0400 Subject: Pad data when adding to refcount reference, to avoid some oddities with how php handles such data. http://forum.pfsense.org/index.php/topic,51188.msg278141.html#msg278141 --- etc/inc/util.inc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'etc/inc/util.inc') diff --git a/etc/inc/util.inc b/etc/inc/util.inc index f95cdb0..565b8b7 100644 --- a/etc/inc/util.inc +++ b/etc/inc/util.inc @@ -200,7 +200,7 @@ function refcount_reference($reference) { $shmid = @shmop_open($reference, "w", 0, 0); } $shm_data = @shmop_read($shmid, 0, 10); - $shm_data = intval($shm_data) + 1; + $shm_data = str_pad(intval($shm_data) + 1, 4, "0", STR_PAD_LEFT); @shmop_write($shmid, $shm_data, 0); @shmop_close($shmid); } catch (Exception $e) { @@ -215,7 +215,7 @@ function refcount_unreference($reference) { /* We assume that the shared memory exists. */ $shmid = @shmop_open($reference, "w", 0, 0); $shm_data = @shmop_read($shmid, 0, 10); - $shm_data = intval($shm_data) - 1; + $shm_data = str_pad(intval($shm_data) - 1, 4, "0", STR_PAD_LEFT); if ($shm_data < 0) { //debug_backtrace(); log_error(sprintf(gettext("Reference %s is going negative, not doing unreference."), $reference)); -- cgit v1.1