s3: selftest: Add share definition [bad_iconv] in fileserver.
authorJeremy Allison <jra@samba.org>
Mon, 11 May 2020 21:10:54 +0000 (14:10 -0700)
committerKarolin Seeger <kseeger@samba.org>
Thu, 4 Jun 2020 10:32:21 +0000 (10:32 +0000)
Creates a utf8 valid filename within that is invalid in CP850.
Useful to test smbclient list directory character set conversions.

https://bugzilla.samba.org/show_bug.cgi?id=14374

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
(back-ported from commit a9651d6bc2b6dea8adc859ce21c2431253868887)

selftest/target/Samba3.pm

index b6bfcef824d46baa5fb14d3eb03575099e5172c1..a15979199f0b8793b1016fbbe12d51707904d10c 100755 (executable)
@@ -959,6 +959,9 @@ sub setup_fileserver
        my $usershare_sharedir="$share_dir/usershares";
        push(@dirs,$usershare_sharedir);
 
+       my $bad_iconv_sharedir="$share_dir/bad_iconv";
+       push(@dirs, $bad_iconv_sharedir);
+
        my $fileserver_options = "
        kernel change notify = yes
 
@@ -1026,6 +1029,12 @@ sub setup_fileserver
        path = $share_dir
        comment = force group test
 #      force group = everyone
+
+[bad_iconv]
+       path = $bad_iconv_sharedir
+       comment = smb username is [%U]
+       vfs objects =
+
 [homes]
        comment = Home directories
        browseable = No
@@ -1094,6 +1103,17 @@ sub setup_fileserver
         close(VALID_USERS_TARGET);
         chmod 0644, $valid_users_target;
 
+       ##
+       ## create a valid utf8 filename which is invalid as a CP850 conversion
+       ##
+        my $bad_iconv_target = "$bad_iconv_sharedir/\xED\x9F\xBF";
+        unless (open(BAD_ICONV_TARGET, ">$bad_iconv_target")) {
+                warn("Unable to open $bad_iconv_target");
+                return undef;
+        }
+        close(BAD_ICONV_TARGET);
+        chmod 0644, $bad_iconv_target;
+
        return $vars;
 }