From 50a5eed08326a850fe0562723156a74a9e83d21d Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Sun, 16 Apr 2023 18:21:51 +1000 Subject: [PATCH] app_server: Fix potential infinite loop MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Return `B_ENTRY_NOT_FOUND` instead of -1 when `/dev/graphics` is not found. Otherwise, `app_server` would run into an infinite loop while waiting `fCardFD` to equal `B_ENTRY_NOT_FOUND` in some specific environments such as a `chroot` where `/dev` is missing. Change-Id: Ice23a82f58811f1258c58826c2488ae5c5c29cee Reviewed-on: https://review.haiku-os.org/c/haiku/+/6376 Reviewed-by: X512 Tested-by: Commit checker robot Reviewed-by: Jérôme Duval --- .../app/drawing/interface/local/AccelerantHWInterface.cpp | 2 +- .../app/drawing/interface/virtual/DWindowHWInterface.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/servers/app/drawing/interface/local/AccelerantHWInterface.cpp b/src/servers/app/drawing/interface/local/AccelerantHWInterface.cpp index bbb52832e1..442df1b2e1 100644 --- a/src/servers/app/drawing/interface/local/AccelerantHWInterface.cpp +++ b/src/servers/app/drawing/interface/local/AccelerantHWInterface.cpp @@ -239,7 +239,7 @@ AccelerantHWInterface::_OpenGraphicsDevice(int deviceNumber) if (!use_fail_safe_video_mode()) { DIR *directory = opendir("/dev/graphics"); if (!directory) - return -1; + return B_ENTRY_NOT_FOUND; struct dirent *entry; char path[PATH_MAX]; diff --git a/src/servers/app/drawing/interface/virtual/DWindowHWInterface.cpp b/src/servers/app/drawing/interface/virtual/DWindowHWInterface.cpp index 680d280a6b..e803bd68af 100644 --- a/src/servers/app/drawing/interface/virtual/DWindowHWInterface.cpp +++ b/src/servers/app/drawing/interface/virtual/DWindowHWInterface.cpp @@ -407,7 +407,7 @@ DWindowHWInterface::_OpenGraphicsDevice(int deviceNumber) { DIR *directory = opendir("/dev/graphics"); if (!directory) - return -1; + return B_ENTRY_NOT_FOUND; // TODO: We do not need to avoid the "vesa" or "framebuffer" drivers this way // once they been ported to the new driver architecture - the special case here