From 11b6e79d8ddfa6a389a192b3c04bc7c5054d8a28 Mon Sep 17 00:00:00 2001
From: Moritz Strohm <strohm@data-quest.de>
Date: Fri, 12 Nov 2021 13:20:10 +0100
Subject: [PATCH] room_request controller: added checks to prevent division by
 zero, re #264

---
 app/controllers/resources/room_request.php | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/app/controllers/resources/room_request.php b/app/controllers/resources/room_request.php
index f6c30e8c105..d3ef841f4d3 100644
--- a/app/controllers/resources/room_request.php
+++ b/app/controllers/resources/room_request.php
@@ -1227,12 +1227,20 @@ class Resources_RoomRequestController extends AuthenticatedController
                 $this->room_availability[$room->id][$metadate_id] = $metadate_availability;
             }
 
-            $this->metadate_availability_share[$room->id][$metadate_id] =
-                ($this->amount_of_metadate_dates[$room->id][$metadate_id] - $this->unavailable_metadate_dates[$room->id][$metadate_id])
-                / $this->amount_of_metadate_dates[$room->id][$metadate_id];
+            if ($this->amount_of_metadate_dates[$room->id][$metadate_id] == 0) {
+                $this->metadate_availability_share[$room->id][$metadate_id] = 0.0;
+            } else {
+                $this->metadate_availability_share[$room->id][$metadate_id] =
+                    ($this->amount_of_metadate_dates[$room->id][$metadate_id] - $this->unavailable_metadate_dates[$room->id][$metadate_id])
+                    / $this->amount_of_metadate_dates[$room->id][$metadate_id];
+            }
+        }
+        if ($this->amount_of_dates[$room->id] == 0) {
+            $this->room_availability_share[$room->id] = 0.0;
+        } else {
+            $this->room_availability_share[$room->id] =
+                ($this->amount_of_dates[$room->id] - $this->unavailable_dates[$room->id]) / $this->amount_of_dates[$room->id];
         }
-        $this->room_availability_share[$room->id] =
-            ($this->amount_of_dates[$room->id] - $this->unavailable_dates[$room->id]) / $this->amount_of_dates[$room->id];
     }
 
 
-- 
GitLab