[PATCH] Fix a crash in the media harmony module
Volker Lendecke
Volker.Lendecke at SerNet.DE
Thu Sep 11 06:55:18 MDT 2014
Hi!
Review&push would be appreciated.
Thanks,
Volker
--
SerNet GmbH, Bahnhofsallee 1b, 37081 Göttingen
phone: +49-551-370000-0, fax: +49-551-370000-9
AG Göttingen, HRB 2816, GF: Dr. Johannes Loxen
http://www.sernet.de, mailto:kontakt at sernet.de
-------------- next part --------------
From fb9f124616498eae9f79c248072256d804bcb576 Mon Sep 17 00:00:00 2001
From: Volker Lendecke <vl at samba.org>
Date: Thu, 11 Sep 2014 11:22:52 +0000
Subject: [PATCH 1/2] media_harmony: Fix warnings
Signed-off-by: Volker Lendecke <vl at samba.org>
---
source3/modules/vfs_media_harmony.c | 21 +++++++++------------
1 file changed, 9 insertions(+), 12 deletions(-)
diff --git a/source3/modules/vfs_media_harmony.c b/source3/modules/vfs_media_harmony.c
index f9432dc..7f499df 100644
--- a/source3/modules/vfs_media_harmony.c
+++ b/source3/modules/vfs_media_harmony.c
@@ -93,7 +93,6 @@
#define MH_INFO_DEBUG 10
#define MH_ERR_DEBUG 0
-static const char* MH_MODULE_NAME = "media_harmony";
static const char* MDB_FILENAME = "msmMMOB.mdb";
static const size_t MDB_FILENAME_LEN = 11;
static const char* PMR_FILENAME = "msmFMID.pmr";
@@ -190,7 +189,7 @@ static bool starts_with_media_dir(const char* media_dirname,
size_t media_dirname_len, const char* path)
{
bool ret = False;
- char* path_start;
+ const char *path_start;
DEBUG(MH_INFO_DEBUG, ("Entering with media_dirname '%s' "
"path '%s'\n", media_dirname, path));
@@ -265,8 +264,8 @@ static int depth_from_media_dir(const char* media_dirname,
size_t media_dirname_len, const char* path)
{
int transition_count = 0;
- char* path_start;
- char* pathPtr;
+ const char *path_start;
+ const char *pathPtr;
DEBUG(MH_INFO_DEBUG, ("Entering with media_dirname '%s' "
"path '%s'\n", media_dirname, path));
@@ -355,7 +354,7 @@ static bool is_avid_database(
(
path[path_len - avid_db_filename_len - 1] == '/'
||
- path_len > avid_db_filename_len
+ (path_len > avid_db_filename_len
+ APPLE_DOUBLE_PREFIX_LEN
&&
path[path_len - avid_db_filename_len
@@ -363,7 +362,7 @@ static bool is_avid_database(
&&
is_apple_double(&path[path_len
- avid_db_filename_len
- - APPLE_DOUBLE_PREFIX_LEN])
+ - APPLE_DOUBLE_PREFIX_LEN]))
)
)
{
@@ -417,15 +416,15 @@ static int alloc_get_client_path(vfs_handle_struct *handle,
)
&&
(
- pathPtr - path > 0
+ (pathPtr - path > 0
&&
- *(pathPtr - 1) == '/'
+ *(pathPtr - 1) == '/')
||
- pathPtr - path > APPLE_DOUBLE_PREFIX_LEN
+ (pathPtr - path > APPLE_DOUBLE_PREFIX_LEN
&&
*(pathPtr - APPLE_DOUBLE_PREFIX_LEN - 1) == '/'
&&
- is_apple_double(pathPtr - APPLE_DOUBLE_PREFIX_LEN)
+ is_apple_double(pathPtr - APPLE_DOUBLE_PREFIX_LEN))
)
)
{
@@ -487,7 +486,6 @@ static int alloc_get_client_smb_fname(struct vfs_handle_struct *handle,
struct smb_filename **clientFname)
{
int status = 0;
- NTSTATUS copystatus;
DEBUG(MH_INFO_DEBUG, ("Entering with smb_fname->base_name '%s'\n",
smb_fname->base_name));
@@ -788,7 +786,6 @@ static DIR *mh_opendir(vfs_handle_struct *handle,
goto err;
}
-out:
/* Success is freed in closedir. */
DEBUG(MH_INFO_DEBUG, ("Leaving with dirInfo->dirpath '%s', "
"dirInfo->clientPath '%s'\n",
--
1.8.1.2
From 0a21d96861dd0908ff7c54a96f6bfd5ba7269532 Mon Sep 17 00:00:00 2001
From: Volker Lendecke <vl at samba.org>
Date: Thu, 11 Sep 2014 11:33:42 +0000
Subject: [PATCH 2/2] media_harmony: Fix a crash bug
Now that the dust has settled, fix a crash bug that was hidden behind
the warnings...
Signed-off-by: Volker Lendecke <vl at samba.org>
---
source3/modules/vfs_media_harmony.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/source3/modules/vfs_media_harmony.c b/source3/modules/vfs_media_harmony.c
index 7f499df..2418349 100644
--- a/source3/modules/vfs_media_harmony.c
+++ b/source3/modules/vfs_media_harmony.c
@@ -490,8 +490,8 @@ static int alloc_get_client_smb_fname(struct vfs_handle_struct *handle,
DEBUG(MH_INFO_DEBUG, ("Entering with smb_fname->base_name '%s'\n",
smb_fname->base_name));
- clientFname = cp_smb_filename(ctx, smb_fname);
- if (clientFname == NULL) {
+ *clientFname = cp_smb_filename(ctx, smb_fname);
+ if ((*clientFname) == NULL) {
DEBUG(MH_ERR_DEBUG, ("alloc_get_client_smb_fname "
"NTERR\n"));
errno = ENOMEM;
--
1.8.1.2
More information about the samba-technical
mailing list