Bug 291282

Summary: Ark is stunned on password-protected zip
Product: [Applications] ark Reporter: andrey.xojiod
Component: generalAssignee: Raphael Kubo da Costa <rakuco>
Severity: normal    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed In: 4.8.1
Sentry Crash Report:

Description andrey.xojiod 2012-01-11 17:55:45 UTC
Version:           4.7 (using KDE 4.7.4) 
OS:                Linux

If I click OK without entering password while extracting password protected zip archive Ark's job is stalled in notification area.

Reproducible: Didn't try

Steps to Reproduce:
1. Download/create password protected zip archive (tested on this: http://tc-alchemy.progopedia.com/quest.zip, password protected zip named lvl1.zip inside it)
2. Right click → Extract Archive Here
3. Just click OK

Actual Results:  
Endless Ark job

Expected Results:  
Error message
Comment 1 Raphael Kubo da Costa 2012-01-25 02:57:11 UTC
Git commit c8913c380c19b776cf87a0d17cad52d281821df9 by Raphael Kubo da Costa.
Committed on 23/01/2012 at 03:54.
Pushed by rkcosta into branch 'KDE/4.8'.

queries: Consider an empty password as a request cancellation.

Empty passwords do not make sense as valid passwords (infozip, rar and
the 7-Zip on Windows do not create archives with empty passwords, for

Calling Query::setResponse(false) when an empty password is passed
makes the code in CliInterface consider the current action has been
canceled, as if the user has pressed the Cancel button in the password
query dialog, and not pass a single newline in password queries.

Even though the related bug report can also be considered to be caused
by PasswordPromptPattern not being defined for the clizip plugin and
CliInterface::handleLine() not checking for password prompts in Copy
mode, this commit has the advantage that the user is not prompted twice
for zip files if she enters an empty password the first time.

The user should be informed that the action has been canceled, but
this can be done in a separate commit.
FIXED-IN: 4.8.1

M  +5    -6    kerfuffle/queries.cpp