smbd: Move bytes from r/w data to r/o text section
authorVolker Lendecke <vl@samba.org>
Wed, 4 Jan 2023 05:22:55 +0000 (06:22 +0100)
committerJeremy Allison <jra@samba.org>
Tue, 10 Jan 2023 00:28:37 +0000 (00:28 +0000)
Even const arrays of const strings need to be relocated at startup time.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/smbd/smb2_trans2.c

index b12b37e0b4f5626cea4ffe72cbe80fa7040a139d..fa9e8b4509b3a162f8dd321f8c22aa69c54e3c8f 100644 (file)
@@ -114,21 +114,18 @@ uint64_t smb_roundup(connection_struct *conn, uint64_t val)
 
 bool samba_private_attr_name(const char *unix_ea_name)
 {
-       static const char * const prohibited_ea_names[] = {
-               SAMBA_POSIX_INHERITANCE_EA_NAME,
-               SAMBA_XATTR_DOS_ATTRIB,
-               SAMBA_XATTR_MARKER,
-               XATTR_NTACL_NAME,
-               AFPINFO_EA_NETATALK,
-               NULL
-       };
+       bool prohibited = false;
 
-       int i;
+       prohibited |= strequal(unix_ea_name, SAMBA_POSIX_INHERITANCE_EA_NAME);
+       prohibited |= strequal(unix_ea_name, SAMBA_XATTR_DOS_ATTRIB);
+       prohibited |= strequal(unix_ea_name, SAMBA_XATTR_MARKER);
+       prohibited |= strequal(unix_ea_name, XATTR_NTACL_NAME);
+       prohibited |= strequal(unix_ea_name, AFPINFO_EA_NETATALK);
 
-       for (i = 0; prohibited_ea_names[i]; i++) {
-               if (strequal( prohibited_ea_names[i], unix_ea_name))
-                       return true;
+       if (prohibited) {
+               return true;
        }
+
        if (strncasecmp_m(unix_ea_name, SAMBA_XATTR_DOSSTREAM_PREFIX,
                        strlen(SAMBA_XATTR_DOSSTREAM_PREFIX)) == 0) {
                return true;