Provide fallback if resize fails (hopefully fixes gvfs errors)
git-svn-id: https://svn.code.sf.net/p/keepassx/code/trunk@330 b624d157-de02-0410-bad0-e51aec6abb33
This commit is contained in:
parent
0a2733a992
commit
8f5cf14b30
|
@ -1455,13 +1455,17 @@ bool Kdb3Database::save(){
|
|||
|
||||
int size = EncryptedPartSize+DB_HEADER_SIZE;
|
||||
|
||||
if(!File->resize(size)){
|
||||
delete [] buffer;
|
||||
error=decodeFileError(File->error());
|
||||
return false;
|
||||
if (!File->resize(size)){
|
||||
if (File->size() > size) {
|
||||
if (!File->remove() || !File->open(QIODevice::ReadWrite)) {
|
||||
delete [] buffer;
|
||||
error=decodeFileError(File->error());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
File->seek(0);
|
||||
if(File->write(buffer,size)!=size){
|
||||
if (File->write(buffer,size)!=size){
|
||||
delete [] buffer;
|
||||
error=decodeFileError(File->error());
|
||||
return false;
|
||||
|
|
Loading…
Reference in New Issue