author | drw <drw> | 2003-03-28 01:27:02 (UTC) |
---|---|---|
committer | drw <drw> | 2003-03-28 01:27:02 (UTC) |
commit | 9e561f9fdd2bef09d21904aba0a74faa39165c04 (patch) (side-by-side diff) | |
tree | e183734520a857a424d7e07c4bf0f0e7a35c90f8 | |
parent | 79907dc7b9d89717b0d02f51a4094449e28eca6c (diff) | |
download | opie-9e561f9fdd2bef09d21904aba0a74faa39165c04.zip opie-9e561f9fdd2bef09d21904aba0a74faa39165c04.tar.gz opie-9e561f9fdd2bef09d21904aba0a74faa39165c04.tar.bz2 |
Fix bug in reading feed's Package file
-rw-r--r-- | noncore/settings/aqpkg/server.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/noncore/settings/aqpkg/server.cpp b/noncore/settings/aqpkg/server.cpp index 04f5ab7..06b0863 100644 --- a/noncore/settings/aqpkg/server.cpp +++ b/noncore/settings/aqpkg/server.cpp @@ -144,54 +144,56 @@ void Server :: readLocalIpks( Server *local ) buildLocalPackages( local ); } void Server :: readPackageFile( Server *local, bool clearAll, bool installingToRoot, Destination *dest ) { ifstream in( packageFile ); if ( !in.is_open() ) return; char line[1001]; char k[21]; char v[1001]; QString key; QString value; if ( clearAll ) cleanUp(); Package *currPackage = 0; bool newPackage = true; do { in.getline( line, 1000 ); if ( in.eof() ) - continue; + break; k[0] = '\0'; v[0] = '\0'; - sscanf( line, "%[^:]: %[^\n]", k, v ); + if ( sscanf( line, "%[^:]: %[^\n]", k, v ) < 2 ) + break; + key = k; value = v; key = key.stripWhiteSpace(); value = value.stripWhiteSpace(); if ( key == "Package" && newPackage ) { newPackage = false; currPackage = getPackage( value ); if ( !currPackage ) { Package *package = new Package( value ); packageList.append( package ); currPackage = package; currPackage->setInstalledTo( dest ); if ( installingToRoot ) currPackage->setInstalledToRoot( true ); } else { if (currPackage->getStatus().find( "deinstall" ) != -1 ) currPackage->setInstalledTo( dest ); } } |