From: Arnaud Ferraris <aferraris@debian.org>
Date: Thu, 9 Feb 2023 19:51:15 +0100
Subject: translate: lookup firmware files under /lib/firmware/updates

`/lib/firmware/updates` is a legitimate location for firmware files,
`tqftpserv` should look there as well.
---
 translate.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/translate.c b/translate.c
index 84a36c2..de3baba 100644
--- a/translate.c
+++ b/translate.c
@@ -24,6 +24,7 @@
 #ifndef ANDROID
 #define FIRMWARE_BASE	"/lib/firmware/"
 #define TQFTPSERV_TMP	"/tmp/tqftpserv"
+#define UPDATES_DIR	"updates/"
 #else
 #define FIRMWARE_BASE	"/vendor/firmware/"
 #define TQFTPSERV_TMP	"/data/vendor/tmp/tqftpserv"
@@ -129,17 +130,25 @@ static int translate_readonly(const char *file)
 		}
 
 		/* now try with base path */
-		if (strlen(FIRMWARE_BASE) + strlen(firmware_value) + 1 +
+		if (strlen(FIRMWARE_BASE) + strlen(UPDATES_DIR) + strlen(firmware_value) + 1 +
 		    strlen(file) + 1 > sizeof(path))
 			continue;
 
 		strcpy(path, FIRMWARE_BASE);
+		strcat(path, UPDATES_DIR);
 		strcat(path, firmware_path);
 		strcat(path, "/");
 		strcat(path, file);
 
 		fd = open_maybe_compressed(path);
+		if (fd < 0) {
+			strcpy(path, FIRMWARE_BASE);
+			strcat(path, firmware_path);
+			strcat(path, "/");
+			strcat(path, file);
 
+			fd = open_maybe_compressed(path);
+		}
 		if (fd >= 0)
 			break;
 
