From: Daniil Sarafannikov Date: Thu, 25 Jun 2026 20:20:34 +0000 (+0400) Subject: s3:srvsvc: add NULL and empty string check in is_hidden_share() X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=98d5d7b3c1508171df233de2282e3d857e0fad86;p=thirdparty%2Fsamba.git s3:srvsvc: add NULL and empty string check in is_hidden_share() 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 Signed-off-by: Daniil Sarafannikov Reviewed-by: Anoop C S Reviewed-by: Volker Lendecke Autobuild-User(master): Volker Lendecke Autobuild-Date(master): Wed Jul 1 07:18:54 UTC 2026 on atb-devel-224 --- diff --git a/source3/rpc_server/srvsvc/srv_srvsvc_nt.c b/source3/rpc_server/srvsvc/srv_srvsvc_nt.c index 2daafd1e3cb..e7383a3925e 100644 --- a/source3/rpc_server/srvsvc/srv_srvsvc_nt.c +++ b/source3/rpc_server/srvsvc/srv_srvsvc_nt.c @@ -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] == '$'; } /*******************************************************************