From 259f4d9c62bc0ccd8c70bca1c7ab6d9bd95d9dd6 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Tue, 9 May 2017 11:50:37 +0200 Subject: [locationinfo] Fix array oob access --- modules-available/locationinfo/api.inc.php | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) (limited to 'modules-available/locationinfo/api.inc.php') diff --git a/modules-available/locationinfo/api.inc.php b/modules-available/locationinfo/api.inc.php index 9b698d65..c93783ec 100644 --- a/modules-available/locationinfo/api.inc.php +++ b/modules-available/locationinfo/api.inc.php @@ -189,26 +189,28 @@ function formatOpeningtime($openingtime) { $result = array(); $weekarray = array("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"); - foreach ($weekarray as $d) { + foreach ($weekarray as $checkDay) { $array = array(); foreach ($openingtime as $opt) { - foreach ($opt['days'] as $val) { - if ($val == $d) { - $arr = array(); - - $openTime = explode(':', $opt['openingtime']); - $arr['HourOpen'] = $openTime[0]; - $arr['MinutesOpen'] = $openTime[1]; - - $closeTime = explode(':', $opt['closingtime']); - $arr['HourClose'] = $closeTime[0]; - $arr['MinutesClose'] = $closeTime[1]; - + if (!isset($opt['days']) || !is_array($opt['days'])) + continue; + $openTime = explode(':', $opt['openingtime']); + $closeTime = explode(':', $opt['closingtime']); + if (count($openTime) !== 2 || count($closeTime) !== 2) + continue; + $arr = array( + 'HourOpen' => $openTime[0], + 'MinutesOpen' => $openTime[1], + 'HourClose' => $closeTime[0], + 'MinutesClose' => $closeTime[1], + ); + foreach ($opt['days'] as $calDay) { + if ($calDay === $checkDay) { $array[] = $arr; } } if (!empty($array)) { - $result[$d] = $array; + $result[$checkDay] = $array; } } } -- cgit v1.2.3-55-g7522