Print this page
NEX-19025 CIFS gets confused with filenames containing enhanced Unicode
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
and: (fix build, check-rtime)
NEX-4083 Upstream changes from illumos 5917 and 5995
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Kevin Crowe <kevin.crowe@nexenta.com>
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
NEX-2460 libfksmbd should not link with libsmb
re #6854 FindFirstFile,FindFirstFileEx,... are not working correctly on Nexenta CIFS-shares

Split Close
Expand all
Collapse all
          --- old/usr/src/common/smbsrv/smb_match.c
          +++ new/usr/src/common/smbsrv/smb_match.c
↓ open down ↓ 134 lines elided ↑ open up ↑
 135  135   * that may match a variable number of characters ('*' and '<') do
 136  136   * recursive calls, looking for a match of the remaining pattern,
 137  137   * starting at the current and later positions in the string.
 138  138   */
 139  139  static int
 140  140  smb_match_private(const char *pat, const char *str, struct match_priv *priv)
 141  141  {
 142  142          const char      *limit;
 143  143          char            pc;             /* current pattern char */
 144  144          int             rc;
 145      -        smb_wchar_t     wcpat, wcstr;   /* current wchar in pat, str */
      145 +        uint32_t        wcpat, wcstr;   /* current wchar in pat, str */
 146  146          int             nbpat, nbstr;   /* multi-byte length of it */
 147  147  
 148  148          if (priv->depth >= SMB_MATCH_DEPTH_MAX)
 149  149                  return (-1);
 150  150  
 151  151          /*
 152  152           * Advance over one multi-byte char, used in cases like
 153  153           * '?' or '>' where "match one character" needs to be
 154  154           * interpreted as "match one multi-byte sequence".
 155  155           *
↓ open down ↓ 110 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX