Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
Utilities
Ark
Commits
2853d66c
Commit
2853d66c
authored
Aug 18, 2020
by
Alexey Ivanov
🐢
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
libzipplugin.cpp: restore password-protected files extraction
parent
0aec0e08
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
4 additions
and
3 deletions
+4
-3
plugins/libzipplugin/libzipplugin.cpp
plugins/libzipplugin/libzipplugin.cpp
+4
-3
No files found.
plugins/libzipplugin/libzipplugin.cpp
View file @
2853d66c
...
...
@@ -481,7 +481,7 @@ bool LibzipPlugin::testArchive()
std
::
unique_ptr
<
zip_file
,
decltype
(
&
zip_fclose
)
>
zipFile
{
zip_fopen_index
(
archive
,
i
,
0
),
&
zip_fclose
};
std
::
unique_ptr
<
uchar
[]
>
buf
(
new
uchar
[
statBuffer
.
size
]);
const
int
len
=
zip_fread
(
zipFile
.
get
(),
buf
.
get
(),
statBuffer
.
size
)
const
int
len
=
zip_fread
(
zipFile
.
get
(),
buf
.
get
(),
statBuffer
.
size
)
;
if
(
len
==
-
1
||
uint
(
len
)
!=
statBuffer
.
size
)
{
qCCritical
(
ARK
)
<<
"Failed to read data for"
<<
statBuffer
.
name
;
return
false
;
...
...
@@ -676,7 +676,9 @@ bool LibzipPlugin::extractEntry(zip_t *archive, const QString &entry, const QStr
std
::
unique_ptr
<
zip_file
,
decltype
(
&
zip_fclose
)
>
zipFile
{
zip_fopen
(
archive
,
entry
.
toUtf8
().
constData
(),
0
),
&
zip_fclose
};
bool
firstTry
=
true
;
while
(
!
zipFile
.
get
())
{
if
(
zipFile
.
get
())
{
std
::
unique_ptr
<
zip_file
,
decltype
(
&
zip_fclose
)
>
tempPtr
{
zip_fopen
(
archive
,
entry
.
toUtf8
().
constData
(),
0
),
&
zip_fclose
};
if
(
tempPtr
.
get
())
{
zipFile
.
swap
(
tempPtr
);
break
;
}
else
if
(
zip_error_code_zip
(
zip_get_error
(
archive
))
==
ZIP_ER_NOPASSWD
||
zip_error_code_zip
(
zip_get_error
(
archive
))
==
ZIP_ER_WRONGPASSWD
)
{
...
...
@@ -754,7 +756,6 @@ bool LibzipPlugin::extractEntry(zip_t *archive, const QString &entry, const QStr
break
;
}
// Close extracted file, flush any buffered data
file
.
close
();
}
...
...
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