cifsd-team / ksmbd

ksmbd kernel server(SMB/CIFS server)
152 stars 23 forks source link

ksmbd 3.3.0 not working on OpenWrt #462

Closed xdarklight closed 3 years ago

xdarklight commented 3 years ago

Hi @namjaejeon

I am having trouble making 3.3.0 work on OpenWrt (lantiq xrx200, big endian). My steps are:

$ smbclient --version
Version 4.13.2
$ smbclient -L //192.168.1.1/ -U " "%" "
smbclient: Can't load /etc/samba/smb.conf - run testparm to debug it

        Sharename       Type      Comment
        ---------       ----      -------
SMB1 disabled -- no workgroup available

on the ksmbd server I now get:

[  645.309831] ksmbd: handle_startup_event:381: Reconnect to a new user space daemon
[  899.656257] do_page_fault(): sending SIGSEGV to pool for invalid read access from 00000000
[  899.663446] epc = 77ebaff4 in libc.so[77e42000+9c000]
[  899.668295] ra  = 0040dc3b in ksmbd.mountd[400000+15000]
[  900.683659] ksmbd: handle_startup_event:381: Reconnect to a new user space daemon

the same with "all" debugging enabled:

[ 1162.064697] ksmbd: ksmbd_kthread_fn:289: connect success: accepted new connection
[ 1162.071296] ksmbd: ksmbd_conn_handler_loop:314: RFC1002 header 214 bytes
[ 1162.077642] ksmbd: ksmbd_verify_smb_message:150: got SMB2 command
[ 1162.083662] ksmbd: smb2_get_data_area_len:192: no length check for command
[ 1162.090558] ksmbd: smb2_calc_size:252: SMB2 data length 0 offset 0
[ 1162.096748] ksmbd: smb2_calc_size:269: SMB2 len 100
[ 1162.101571] ksmbd: ksmbd_smb2_check_message:436: cli req padded more than expected. Length 214 not 100 for cmd:0 mid:0
[ 1162.112315] ksmbd: ksmbd_lookup_dialect_by_id:247: client requested dialect 0x311
[ 1162.119817] ksmbd: ksmbd_lookup_dialect_by_id:254: selected SMB 3.1.1 dialect
[ 1162.127078] ksmbd: ksmbd_smb_negotiate_common:477: conn->dialect 0x311
[ 1162.133533] ksmbd: smb2_handle_negotiate:1012: Received negotiate request
[ 1162.140354] ksmbd: deassemble_neg_contexts:942: negotiate context count = 3
[ 1162.147243] ksmbd: deassemble_neg_contexts:947: deassemble SMB2_PREAUTH_INTEGRITY_CAPABILITIES context
[ 1162.156654] ksmbd: deassemble_neg_contexts:957: deassemble SMB2_ENCRYPTION_CAPABILITIES context
[ 1162.165328] ksmbd: deassemble_neg_contexts:977: deassemble SMB2_NETNAME_NEGOTIATE_CONTEXT_ID context
[ 1162.174689] ksmbd: assemble_neg_contexts:820: assemble SMB2_PREAUTH_INTEGRITY_CAPABILITIES context
[ 1162.183393] ksmbd: smb2_handle_negotiate:1112: negotiate context offset 208, count 1
[ 1162.191201] ksmbd: smb2_set_rsp_credits:377: credits: requested[31] granted[1] total_granted[1]
[ 1162.211890] ksmbd: ksmbd_conn_handler_loop:314: RFC1002 header 162 bytes
[ 1162.217363] ksmbd: ksmbd_verify_smb_message:150: got SMB2 command
[ 1162.223403] ksmbd: smb2_calc_size:252: SMB2 data length 74 offset 88
[ 1162.229791] ksmbd: smb2_calc_size:269: SMB2 len 162
[ 1162.234583] ksmbd: smb2_sess_setup:1553: Received request for session setup
[ 1162.241695] ksmbd: ksmbd_decode_negTokenInit:352: Received SecBlob: length 74
[ 1162.248862] ksmbd: ntlm_negotiate:1214: negotiate phase
[ 1162.254032] ksmbd: ksmbd_build_ntlmssp_challenge_blob:705: NTLMSSP SecurityBufferLength 218
[ 1162.262307] ksmbd: smb2_set_rsp_credits:377: credits: requested[8192] granted[33] total_granted[33]
[ 1162.277421] ksmbd: ksmbd_conn_handler_loop:314: RFC1002 header 544 bytes
[ 1162.282919] ksmbd: ksmbd_verify_smb_message:150: got SMB2 command
[ 1162.288949] ksmbd: smb2_calc_size:252: SMB2 data length 456 offset 88
[ 1162.295311] ksmbd: smb2_calc_size:269: SMB2 len 544
[ 1162.300183] ksmbd: smb2_sess_setup:1553: Received request for session setup
[ 1162.307214] ksmbd: ksmbd_decode_negTokenInit:352: Received SecBlob: length 456
[ 1162.314437] ksmbd: ksmbd_decode_negTokenInit:363: cls = 2 con = 1 tag = 1
[ 1162.321154] ksmbd: ksmbd_decode_negTokenTarg:520: Received Auth SecBlob: length 456
[ 1162.329119] ksmbd: ntlm_authenticate:1316: authenticate phase
[ 1162.334587] ksmbd: session_user:1299: session setup request for user  
[ 1162.341884] ksmbd: generate_smb3signingkey:1045: dumping generated AES signing keys
[ 1162.348771] ksmbd: generate_smb3signingkey:1046: Session Id    1
[ 1162.354857] ksmbd: generate_smb3signingkey:1048: Session Key   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 1162.364762] ksmbd: generate_smb3signingkey:1050: Signing Key   ae ee cf 70 5c bf f1 a4 ec e9 10 0e 0a f6 00 b0
[ 1162.374837] ksmbd: smb2_set_rsp_credits:377: credits: requested[8160] granted[33] total_granted[65]
[ 1162.387597] ksmbd: ksmbd_conn_handler_loop:314: RFC1002 header 108 bytes
[ 1162.393117] ksmbd: smb2_get_ksmbd_tcon:103: skip to check tree connect request
[ 1162.400203] ksmbd: ksmbd_verify_smb_message:150: got SMB2 command
[ 1162.406331] ksmbd: smb2_calc_size:252: SMB2 data length 36 offset 72
[ 1162.412654] ksmbd: smb2_calc_size:269: SMB2 len 108
[ 1162.417567] ksmbd: smb2_tree_connect:1695: tree connect request for tree IPC$ treename \\192.168.1.1\IPC$
[ 1162.427810] ksmbd: smb2_tree_connect:1705: IPC share path request
[ 1162.433366] ksmbd: smb2_set_rsp_credits:377: credits: requested[8128] granted[33] total_granted[97]
[ 1162.447423] ksmbd: ksmbd_conn_handler_loop:314: RFC1002 header 132 bytes
[ 1162.452912] ksmbd: ksmbd_verify_smb_message:150: got SMB2 command
[ 1162.458956] ksmbd: smb2_calc_size:252: SMB2 data length 12 offset 120
[ 1162.465310] ksmbd: smb2_calc_size:269: SMB2 len 132
[ 1162.470242] ksmbd: smb2_open:2497: IPC pipe create request
[ 1162.476368] ksmbd: smb2_set_rsp_credits:377: credits: requested[8096] granted[33] total_granted[129]
[ 1162.489230] ksmbd: ksmbd_conn_handler_loop:314: RFC1002 header 192 bytes
[ 1162.494975] ksmbd: ksmbd_verify_smb_message:150: got SMB2 command
[ 1162.500716] ksmbd: smb2_calc_size:252: SMB2 data length 72 offset 120
[ 1162.507220] ksmbd: smb2_calc_size:269: SMB2 len 192
[ 1162.513099] ksmbd: smb2_set_rsp_credits:377: credits: requested[8064] granted[33] total_granted[161]
[ 1162.525891] ksmbd: ksmbd_conn_handler_loop:314: RFC1002 header 216 bytes
[ 1162.531594] ksmbd: ksmbd_verify_smb_message:150: got SMB2 command
[ 1162.537483] ksmbd: smb2_calc_size:252: SMB2 data length 96 offset 120
[ 1162.543801] ksmbd: smb2_calc_size:269: SMB2 len 216
[ 1162.549252] do_page_fault(): sending SIGSEGV to pool for invalid read access from 00000000
[ 1162.556895] epc = 77ebaff4 in libc.so[77e42000+9c000]
[ 1162.561963] ra  = 0040dc3b in ksmbd.mountd[400000+15000]
[ 1163.573743] ksmbd: handle_startup_event:381: Reconnect to a new user space daemon
[ 1164.576679] ksmbd: smb2_set_rsp_credits:377: credits: requested[8032] granted[33] total_granted[193]
[ 1164.588377] ksmbd: ksmbd_conn_handler_loop:314: RFC1002 header 88 bytes
[ 1164.593861] ksmbd: ksmbd_verify_smb_message:150: got SMB2 command
[ 1164.599742] ksmbd: smb2_calc_size:269: SMB2 len 88
[ 1164.604558] ksmbd: smb2_close:5231: IPC pipe close request
[ 1164.611378] ksmbd: smb2_set_rsp_credits:377: credits: requested[8000] granted[33] total_granted[225]
[ 1164.624498] ksmbd: ksmbd_conn_handler_loop:314: RFC1002 header 68 bytes
[ 1164.629905] ksmbd: ksmbd_verify_smb_message:150: got SMB2 command
[ 1164.635961] ksmbd: smb2_calc_size:269: SMB2 len 68
[ 1164.640674] ksmbd: smb2_tree_disconnect:1841: request
[ 1164.645816] ksmbd: smb2_set_rsp_credits:377: credits: requested[7968] granted[33] total_granted[257]

smb.conf in case it's relevant:

[global]
        netbios name = OpenWrt
        server string = Ksmbd on OpenWrt
        workgroup = WORKGROUP
        interfaces = br-lan 
        bind interfaces only = yes
        ipc timeout = 20
        deadtime = 15
        map to guest = Bad User
        smb2 max read = 64K
        smb2 max write = 64K
        smb2 max trans = 64K
        cache read buffers = no
        cache trans buffers = no

######### Dynamic written config options #########
        server min protocol = NT1
        server signing = disabled

[PS2SMB]
        path = /mnt/ps2
        create mask = 0666
        directory mask = 0777
        read only = no
        guest ok = yes

[HTS]
        path = /mnt/hts
        valid users = hts
        create mask = 0666
        directory mask = 0777
        read only = no
        guest ok = yes

as well as:

# ksmbd.mountd --version
ksmbd-tools version : 3.3.0

any suggestions how to debug this?

Best regards, Martin

namjaejeon commented 3 years ago

segfault happen in ksmbd.mountd, Could you please find segfault line using gdb ?

xdarklight commented 3 years ago

how do I run the ksmbd.mount command manually (how to find the right arguments)? or do I need to attach to the running process

namjaejeon commented 3 years ago

normally command running ksmbd.mountd without options like this. sudo ksmbd.mountd

It doesn't work ? @Andy2244 Could you help us run ksmbd.mountd manually on openWRT ?

xdarklight commented 3 years ago
# id
uid=0(root) gid=0(root)
# ksmbd.mountd 
#

and then in the system log I get:

ksmbd: [ksmbd-manager/19963]: INFO: File '/tmp/ksmbd.lock' belongs to pid 4581
ksmbd: [ksmbd-manager/19963]: ERROR: Failed to create lock file: File exists
ksmbd: [ksmbd-manager/19963]: INFO: Exiting. Bye!
hclee commented 3 years ago
# id
uid=0(root) gid=0(root)
# ksmbd.mountd 
#

and then in the system log I get:

ksmbd: [ksmbd-manager/19963]: INFO: File '/tmp/ksmbd.lock' belongs to pid 4581
ksmbd: [ksmbd-manager/19963]: ERROR: Failed to create lock file: File exists
ksmbd: [ksmbd-manager/19963]: INFO: Exiting. Bye!

There might already be running ksmbd.mountd. You need to kill it with "kill -INT 4581"

namjaejeon commented 3 years ago

There might already be running ksmbd.mountd. You need to kill it with "kill -INT 4581"

@hclee Right! Need to kill ksmbd.mountd that already is running first.

xdarklight commented 3 years ago

thanks for the hints @hclee and @namjaejeon

in general I am following: https://openwrt.org/docs/guide-developer/gdb

I had to upload ksmbd.mountd to /tmp/ with debugging info:

# gdbserver :9000 /tmp/ksmbd.mountd -n
Process /tmp/ksmbd.mountd created; pid = 5103
Listening on port 9000
Remote debugging from host 192.168.1.100, port 60122
Detaching from process 5149
[ksmbd-worker/5149]: ERROR: Can't open `/etc/ksmbd/ksmbdpwd.db': No such file or directory
[ksmbd-worker/5149]: ERROR: User database file does not exist. Only guest sessions (if permitted) will work.
[ksmbd-worker/5149]: INFO: Drop non-existing user `hts'
[ksmbd-manager/5103]: ERROR: WARNING: child process exited abnormally: 5149
Detaching from process 5161
[ksmbd-worker/5161]: ERROR: Can't open `/etc/ksmbd/ksmbdpwd.db': No such file or directory
[ksmbd-worker/5161]: ERROR: User database file does not exist. Only guest sessions (if permitted) will work.
[ksmbd-worker/5161]: INFO: Drop non-existing user `hts'
[ksmbd-worker/5161]: ERROR: RPC: unknown pipe ID: 0

then on my PC:

$ ./scripts/remote-gdb 192.168.1.1:9000 ./build_dir/target-mips_24kc_musl/ksmbd-tools-3.3.0/mountd/ksmbd.mountd 
Using target mips_24kc (musl, )
GNU gdb (GDB) 10.1
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "--host=x86_64-pc-linux-gnu --target=mips-openwrt-linux-musl".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./build_dir/target-mips_24kc_musl/ksmbd-tools-3.3.0/mountd/ksmbd.mountd...
0x77f5e690 in _dlstart () from /mnt/devel/lede/stable/scripts/../staging_dir/target-mips_24kc_musl/root-lantiq/lib/ld-musl-mips-sf.so.1
(gdb) c
Continuing.
[Detaching after fork from child process 5149]
[Detaching after fork from child process 5161]

in other words: it doesn't pause in gdb when crashing... I will investigate further tonight. any hints are appreciated though

xdarklight commented 3 years ago

in gdb I had to use: set follow-fork-mode child

now I get:

Thread 4.2 "pool" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 7797.7811]
strlen (s=0x0) at src/string/strlen.c:17
17              for (w = (const void *)s; !HASZERO(*w); w++);
(gdb) bt full
#0  strlen (s=0x0) at src/string/strlen.c:17
        a = 0x0
        w = 0x0
#1  0x0040dc3b in __share_entry_data_ctr1 (dce=0x77f11f30, entry=<optimized out>) at rpc_srvsvc.c:110
        share = <optimized out>
        ret = 0
        len = <optimized out>
#2  0x00409163 in __ndr_write_array_of_structs (pipe=0x77f113c0, max_entry_nr=<optimized out>) at rpc.c:564
        entry = <optimized out>
        dce = 0x77f11f30
        i = 0
#3  0x0040e26d in ndr_write_array_of_structs (pipe=0x77f113c0) at rpc.c:628
        dce = 0x77f11f30
        max_entry_nr = 3
        ret = 0
        dce = <optimized out>
        max_entry_nr = <optimized out>
        ret = <optimized out>
#4  srvsvc_share_enum_all_return (pipe=0x77f113c0) at rpc_srvsvc.c:220
        dce = 0x77f11f30
        status = 0
        dce = <optimized out>
        status = <optimized out>
#5  srvsvc_share_info_return (pipe=0x77f113c0) at rpc_srvsvc.c:373
        dce = 0x77f11f30
        status = <optimized out>
        dce = <optimized out>
        status = <optimized out>
#6  srvsvc_return (max_resp_sz=<optimized out>, resp=<optimized out>, pipe=0x77f113c0) at rpc_srvsvc.c:423
        dce = 0x77f11f30
        ret = <optimized out>
...
sergey-senozhatsky commented 3 years ago

On (20/11/30 04:14), Martin Blumenstingl wrote:

0 strlen (s=0x0) at src/string/strlen.c:17

     a = 0x0
     w = 0x0

1 0x0040dc3b in __share_entry_data_ctr1 (dce=0x77f11f30, entry=) at rpc_srvsvc.c:110

     share = <optimized out>
     ret = 0
     len = <optimized out>

2 0x00409163 in __ndr_write_array_of_structs (pipe=0x77f113c0, max_entry_nr=) at rpc.c:564

     entry = <optimized out>
     dce = 0x77f11f30
     i = 0

3 0x0040e26d in ndr_write_array_of_structs (pipe=0x77f113c0) at rpc.c:628

     dce = 0x77f11f30
     max_entry_nr = 3
     ret = 0
     dce = <optimized out>
     max_entry_nr = <optimized out>
     ret = <optimized out>

4 srvsvc_share_enum_all_return (pipe=0x77f113c0) at rpc_srvsvc.c:220

     dce = 0x77f11f30
     status = 0
     dce = <optimized out>
     status = <optimized out>

5 srvsvc_share_info_return (pipe=0x77f113c0) at rpc_srvsvc.c:373

     dce = 0x77f11f30
     status = <optimized out>
     dce = <optimized out>
     status = <optimized out>

6 srvsvc_return (max_resp_sz=, resp=, pipe=0x77f113c0) at rpc_srvsvc.c:423

     dce = 0x77f11f30
     ret = <optimized out>

That's a NULL string in strlen(). Can we see your smb.conf?

-ss
xdarklight commented 3 years ago

@sergey-senozhatsky it's related to the comment field. my smb.conf is already shown above (in this GH issue).

I came up with a patch in cifsd-team/ksmbd-tools#159 -> this fixes the problem for me

sergey-senozhatsky commented 3 years ago

On (20/11/30 04:14), Martin Blumenstingl wrote:

in gdb I had to use: set follow-fork-mode child

now I get:

Thread 4.2 "pool" received signal SIGSEGV, Segmentation fault. [Switching to Thread 7797.7811] strlen (s=0x0) at src/string/strlen.c:17 17 for (w = (const void )s; !HASZERO(w); w++); (gdb) bt full

0 strlen (s=0x0) at src/string/strlen.c:17

     a = 0x0
     w = 0x0

1 0x0040dc3b in __share_entry_data_ctr1 (dce=0x77f11f30, entry=) at rpc_srvsvc.c:110

     share = <optimized out>
     ret = 0
     len = <optimized out>

2 0x00409163 in __ndr_write_array_of_structs (pipe=0x77f113c0, max_entry_nr=) at rpc.c:564

     entry = <optimized out>
     dce = 0x77f11f30
     i = 0

3 0x0040e26d in ndr_write_array_of_structs (pipe=0x77f113c0) at rpc.c:628

     dce = 0x77f11f30
     max_entry_nr = 3
     ret = 0
     dce = <optimized out>
     max_entry_nr = <optimized out>
     ret = <optimized out>

Does something like this fix it for you?


diff --git a/mountd/rpc_srvsvc.c b/mountd/rpc_srvsvc.c index 6492e9a..f174fb4 100644 --- a/mountd/rpc_srvsvc.c +++ b/mountd/rpc_srvsvc.c @@ -57,9 +57,14 @@ static int __share_entry_size_ctr1(struct ksmbd_dcerpc dce, gpointer entry) struct ksmbd_share share = entry; int sz = 0;

sergey-senozhatsky commented 3 years ago

@sergey-senozhatsky it's related to the comment field. my smb.conf is already shown above (in this GH issue).

I came up with a patch in cifsd-team/ksmbd-tools#159 -> this fixes the problem for me

Oh, I see... but does this actually work for container level 1? Don't we need to have the comment string in the output? I'm not sure that we can just skip it. It might be the case that we need to write empty vstring.

sergey-senozhatsky commented 3 years ago

@xdarklight let's fix it like this?

diff --git a/lib/management/share.c b/lib/management/share.c
index b73a9be..ec19963 100644
--- a/lib/management/share.c
+++ b/lib/management/share.c
@@ -576,6 +576,12 @@ static void process_group_kv(gpointer _k, gpointer _v, gpointer user_data)
    }
 }

+static void fixup_missing_fields(struct ksmbd_share *share)
+{
+   if (!share->comment)
+       share->comment = stdup("");
+}
+
 static void init_share_from_group(struct ksmbd_share *share,
                 struct smbconf_group *group)
 {
@@ -599,6 +605,8 @@ static void init_share_from_group(struct ksmbd_share *share,
        set_share_flag(share, KSMBD_SHARE_FLAG_PIPE);

    g_hash_table_foreach(group->kv, process_group_kv, share);
+
+   fixup_missing_fields(share);
 }

 int shm_add_new_share(struct smbconf_group *group)
diff --git a/mountd/rpc_srvsvc.c b/mountd/rpc_srvsvc.c
index 6492e9a..08cbca8 100644
--- a/mountd/rpc_srvsvc.c
+++ b/mountd/rpc_srvsvc.c
@@ -58,9 +58,7 @@ static int __share_entry_size_ctr1(struct ksmbd_dcerpc *dce, gpointer entry)
    int sz = 0;

    sz = strlen(share->name) * 2;
-   if (share->comment)
-       sz += strlen(share->comment) * 2;
-
+   sz += strlen(share->comment) * 2;
    sz += 9 * sizeof(__u32);
    return sz;
 }
xdarklight commented 3 years ago

@xdarklight let's fix it like this?


diff --git a/lib/management/share.c b/lib/management/share.c
index b73a9be..ec19963 100644
--- a/lib/management/share.c
+++ b/lib/management/share.c
@@ -576,6 +576,12 @@ static void process_group_kv(gpointer _k, gpointer _v, gpointer user_data)
  }
 }

+static void fixup_missing_fields(struct ksmbd_share *share)
+{
+ if (!share->comment)
+     share->comment = stdup("");

my compiler reports:

:(.text.groups_callback+0x84): undefined reference to `stdup'

if I replace "stdup" with "strdup" then it compiles and works fine for me

with that fixed, feel free to add my: Fixes: 8ec5ca70e8bb87 ("ksmbd-tools: add max_len and actual_len arguments in ndr_write_vstring()") Tested-by: Martin Blumenstingl \martin.blumenstingl@googlemail.com\

namjaejeon commented 3 years ago

Oops, Thanks for fixing a bug... @sergey-senozhatsky Can you send the patch to list ? I will appy it. Thanks!

namjaejeon commented 3 years ago

@xdarklight Thanks very much Martin for your work!

namjaejeon commented 3 years ago

@xdarklight One more help, Could you please check acls work on openWRT ?

  1. Mouse right-click on the file shared by ksmbd.
  2. Click the security tab.
  3. Can see owner, group, everyone.

Thanks!

sergey-senozhatsky commented 3 years ago

On (20/11/30 12:12), Martin Blumenstingl wrote:

 [1]@xdarklight let's fix it like this?

diff --git a/lib/management/share.c b/lib/management/share.c index b73a9be..ec19963 100644 --- a/lib/management/share.c +++ b/lib/management/share.c @@ -576,6 +576,12 @@ static void process_group_kv(gpointer _k, gpointer _v, gpointer user_data) } }

+static void fixup_missing_fields(struct ksmbd_share *share) +{

  • if (!share->comment)
  • share->comment = stdup("");

    my compiler reports:

    :(.text.groups_callback+0x84): undefined reference to `stdup' if I replace "stdup" with "strdup" then it compiles and works fine for me

LOL oops I don't compile test the patches, that would have been no fun.

Since you already took a look at the issue and sent a PR, I don't mind it if you'll pickup these changes (fixup_missing_fields()) and re-spin your patch. Let me know.

-ss
namjaejeon commented 3 years ago

"ksmbd-tools: add max_len and actual_len arguments in ndr_write_vstring()" is rollback by this patch(https://github.com/cifsd-team/ksmbd-tools/commit/fb5e99e0fa735ac3b9b843b9d13d01381b47ee66), So I think that this issue will be clear if you use ksmbd-tools-next.

namjaejeon commented 3 years ago

@xdarklight Martin, if you confirm it, I will release ksmbd/ksmbd-tools 3.3.1 version.

xdarklight commented 3 years ago

@namjaejeon sorry for the late reply. with ksmbd and ksmbd-tools both in version 3.3.1 "it works again". thanks to everyone who helped!

namjaejeon commented 3 years ago

@xdarklight No problem:) Thanks for your help and work!