From 592b401af9d2db3ba31b6d178fa5a4cf4c1989aa Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Mon, 24 Jul 2006 23:06:16 +0200 Subject: [PATCH] * ftparchive/cachedb.cc: - applied patch from ajt (#379576) --- debian/changelog | 3 +++ ftparchive/cachedb.cc | 13 ++++++------- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/debian/changelog b/debian/changelog index 1febfe49..1cafdaa9 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,9 @@ apt (0.6.45) unstable; urgency=low * apt-pkg/contrib/sha256.cc: - fixed the sha256 generation (closes: #378183) + * ftparchive/cachedb.cc: + - applied patch from ajt to fix Clean() function + (closes: #379576) -- diff --git a/ftparchive/cachedb.cc b/ftparchive/cachedb.cc index 0e607864..8a4ca023 100644 --- a/ftparchive/cachedb.cc +++ b/ftparchive/cachedb.cc @@ -453,15 +453,14 @@ bool CacheDB::Clean() memset(&Data,0,sizeof(Data)); while ((errno = Cursor->c_get(Cursor,&Key,&Data,DB_NEXT)) == 0) { - const char *Colon = (char *)Key.data; - for (; Colon != (char *)Key.data+Key.size && *Colon != ':'; Colon++); - if ((char *)Key.data+Key.size - Colon > 2) + const char *Colon = (char*)memrchr(Key.data, ':', Key.size); + if (Colon) { - if (stringcmp((char *)Key.data,Colon,"st") == 0 || - stringcmp((char *)Key.data,Colon,"cn") == 0 || - stringcmp((char *)Key.data,Colon,"cl") == 0) + if (stringcmp(Colon + 1, (char *)Key.data+Key.size,"st") == 0 || + stringcmp(Colon + 1, (char *)Key.data+Key.size,"cl") == 0 || + stringcmp(Colon + 1, (char *)Key.data+Key.size,"cn") == 0) { - if (FileExists(string(Colon+1,(const char *)Key.data+Key.size)) == true) + if (FileExists(string((const char *)Key.data,Colon)) == true) continue; } } -- 2.20.1