41 lines
1.5 KiB
Diff
41 lines
1.5 KiB
Diff
|
|
From 757cd49b8445f22c2c19380e948e7aba5a76399a Mon Sep 17 00:00:00 2001
|
|||
|
|
From: Joseph Sutton <josephsutton@catalyst.net.nz>
|
|||
|
|
Date: Fri, 6 Oct 2023 13:54:02 +1300
|
|||
|
|
Subject: [PATCH] =?UTF-8?q?tdb:=20Do=20not=20pass=20non=E2=80=93null?=
|
|||
|
|
=?UTF-8?q?=E2=80=90terminated=20strings=20to=20strcmp()=20(CID=201449485)?=
|
|||
|
|
MIME-Version: 1.0
|
|||
|
|
Content-Type: text/plain; charset=UTF-8
|
|||
|
|
Content-Transfer-Encoding: 8bit
|
|||
|
|
|
|||
|
|
Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz>
|
|||
|
|
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
|
|||
|
|
|
|||
|
|
Reference:https://github.com/samba-team/samba/commit/757cd49b8445f22c2c19380e948e7aba5a76399a
|
|||
|
|
Conflict:NA
|
|||
|
|
---
|
|||
|
|
common/open.c | 8 +++++++-
|
|||
|
|
1 file changed, 7 insertions(+), 1 deletion(-)
|
|||
|
|
|
|||
|
|
diff --git a/common/open.c b/common/open.c
|
|||
|
|
index f7f65b0..4e138c6 100644
|
|||
|
|
--- a/common/open.c
|
|||
|
|
+++ b/common/open.c
|
|||
|
|
@@ -513,7 +513,13 @@ _PUBLIC_ struct tdb_context *tdb_open_ex(const char *name, int hash_size, int td
|
|||
|
|
|
|||
|
|
errno = 0;
|
|||
|
|
if (read(tdb->fd, &header, sizeof(header)) != sizeof(header)
|
|||
|
|
- || strcmp(header.magic_food, TDB_MAGIC_FOOD) != 0) {
|
|||
|
|
+ /*
|
|||
|
|
+ * Call strncmp() rather than strcmp() in case header.magic_food is
|
|||
|
|
+ * not zero‐terminated. We’re still checking the full string for
|
|||
|
|
+ * equality, as tdb_header::magic_food is larger than
|
|||
|
|
+ * TDB_MAGIC_FOOD.
|
|||
|
|
+ */
|
|||
|
|
+ || strncmp(header.magic_food, TDB_MAGIC_FOOD, sizeof(header.magic_food)) != 0) {
|
|||
|
|
if (!(open_flags & O_CREAT) ||
|
|||
|
|
tdb_new_database(tdb, &header, hash_size) == -1) {
|
|||
|
|
if (errno == 0) {
|
|||
|
|
--
|
|||
|
|
2.33.0
|
|||
|
|
|