]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3:srvsvc: add NULL and empty string check in is_hidden_share()
authorDaniil Sarafannikov <sarafannikovda@sgu.ru>
Thu, 25 Jun 2026 20:20:34 +0000 (00:20 +0400)
committerVolker Lendecke <vl@samba.org>
Wed, 1 Jul 2026 07:18:54 +0000 (07:18 +0000)
The function lp_servicename() can return NULL string. Also there
is no guarantee that string is not empty. Add explicit checks for
both cases to avoid invalid access in net_name[len - 1].

Also remove use of True/False.

Pair-Programmed-With: Dmitry Mikhalchenko <tascad@altlinux.org>
Signed-off-by: Daniil Sarafannikov <sarafannikovda@sgu.ru>
Reviewed-by: Anoop C S <anoopcs@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
Autobuild-User(master): Volker Lendecke <vl@samba.org>
Autobuild-Date(master): Wed Jul  1 07:18:54 UTC 2026 on atb-devel-224

source3/rpc_server/srvsvc/srv_srvsvc_nt.c

index 2daafd1e3cbed5f12070a76522e6d6ca032de6d9..e7383a3925e3cb3f1fd0e8495a97fb019d186bea 100644 (file)
@@ -546,7 +546,11 @@ static bool is_hidden_share(int snum)
                loadparm_s3_global_substitution();
        const char *net_name = lp_servicename(talloc_tos(), lp_sub, snum);
 
-       return (net_name[strlen(net_name) - 1] == '$') ? True : False;
+       if (net_name == NULL || net_name[0] == '\0') {
+               return false;
+       }
+
+       return net_name[strlen(net_name) - 1] == '$';
 }
 
 /*******************************************************************