From 02a5078f1fe6285e4a0b6ad95a3aea1c5bb3e8cf Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Thu, 11 Feb 2010 14:45:53 -0800 Subject: [PATCH] Final part of jumbo patch for bug #7104 - "wide links" and "unix extensions" are incompatible. Volker pointed out that the preexec scripts get passed the conn->connectpath as a parameter, so call canonicalize_connect_path() both *before* and after the preexec scripts. Ignore errors on the call before the preexec scripts, as the path may not exist until created by the preexec scripts. Jeremy. --- source3/smbd/service.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/source3/smbd/service.c b/source3/smbd/service.c index 4efa63e1dcf..45df7c14fe1 100644 --- a/source3/smbd/service.c +++ b/source3/smbd/service.c @@ -893,6 +893,18 @@ connection_struct *make_connection_snum(struct smbd_server_connection *sconn, return NULL; } + /* + * Fix compatibility issue pointed out by Volker. + * We pass the conn->connectpath to the preexec + * scripts as a parameter, so attempt to canonicalize + * it here before calling the preexec scripts. + * We ignore errors here, as it is possible that + * the conn->connectpath doesn't exist yet and + * the preexec scripts will create them. + */ + + (void)canonicalize_connect_path(conn); + /* Preexecs are done here as they might make the dir we are to ChDir * to below */ /* execute any "root preexec = " line */ -- 2.11.4.GIT