Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Main
Synchronet
Commits
34aeeb6d
Commit
34aeeb6d
authored
May 13, 2021
by
Rob Swindell
💬
Browse files
smb_removefile() failed if filename length was > 64 chars
And the "name not found" error text was wrong.
parent
b830d5f5
Pipeline
#2169
failed with stage
in 8 minutes and 20 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
5 additions
and
3 deletions
+5
-3
src/smblib/smbfile.c
src/smblib/smbfile.c
+5
-3
No files found.
src/smblib/smbfile.c
View file @
34aeeb6d
...
@@ -385,6 +385,7 @@ int smb_removefile(smb_t* smb, smbfile_t* file)
...
@@ -385,6 +385,7 @@ int smb_removefile(smb_t* smb, smbfile_t* file)
{
{
int
result
;
int
result
;
int
removed
=
0
;
int
removed
=
0
;
char
fname
[
SMB_FILEIDX_NAMELEN
+
1
]
=
""
;
if
(
!
smb
->
locked
&&
smb_locksmbhdr
(
smb
)
!=
SMB_SUCCESS
)
if
(
!
smb
->
locked
&&
smb_locksmbhdr
(
smb
)
!=
SMB_SUCCESS
)
return
SMB_ERR_LOCK
;
return
SMB_ERR_LOCK
;
...
@@ -411,6 +412,7 @@ int smb_removefile(smb_t* smb, smbfile_t* file)
...
@@ -411,6 +412,7 @@ int smb_removefile(smb_t* smb, smbfile_t* file)
smb_close_da
(
smb
);
smb_close_da
(
smb
);
// Now remove from index:
// Now remove from index:
smb_fileidxname
(
file
->
name
,
fname
,
sizeof
(
fname
));
if
(
result
==
SMB_SUCCESS
)
{
if
(
result
==
SMB_SUCCESS
)
{
rewind
(
smb
->
sid_fp
);
rewind
(
smb
->
sid_fp
);
fileidxrec_t
*
fidx
=
malloc
(
smb
->
status
.
total_files
*
sizeof
(
*
fidx
));
fileidxrec_t
*
fidx
=
malloc
(
smb
->
status
.
total_files
*
sizeof
(
*
fidx
));
...
@@ -425,7 +427,7 @@ int smb_removefile(smb_t* smb, smbfile_t* file)
...
@@ -425,7 +427,7 @@ int smb_removefile(smb_t* smb, smbfile_t* file)
}
}
rewind
(
smb
->
sid_fp
);
rewind
(
smb
->
sid_fp
);
for
(
uint32_t
i
=
0
;
i
<
smb
->
status
.
total_files
;
i
++
)
{
for
(
uint32_t
i
=
0
;
i
<
smb
->
status
.
total_files
;
i
++
)
{
if
(
stricmp
(
fidx
[
i
].
name
,
f
ile
->
name
)
==
0
)
{
if
(
stricmp
(
fidx
[
i
].
name
,
fname
)
==
0
)
{
removed
++
;
removed
++
;
continue
;
continue
;
}
}
...
@@ -439,8 +441,8 @@ int smb_removefile(smb_t* smb, smbfile_t* file)
...
@@ -439,8 +441,8 @@ int smb_removefile(smb_t* smb, smbfile_t* file)
free
(
fidx
);
free
(
fidx
);
if
(
result
==
SMB_SUCCESS
)
{
if
(
result
==
SMB_SUCCESS
)
{
if
(
removed
<
1
)
{
if
(
removed
<
1
)
{
safe_snprintf
(
smb
->
last_error
,
sizeof
(
smb
->
last_error
),
"%s name found: %s"
safe_snprintf
(
smb
->
last_error
,
sizeof
(
smb
->
last_error
),
"%s name
not
found: %s"
,
__FUNCTION__
,
f
ile
->
name
);
,
__FUNCTION__
,
fname
);
result
=
SMB_ERR_NOT_FOUND
;
result
=
SMB_ERR_NOT_FOUND
;
}
else
{
}
else
{
fflush
(
smb
->
sid_fp
);
fflush
(
smb
->
sid_fp
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment