before removing an entry from an hash, revalidate whether we actualy found it
[citadel.git] / citadel / modules / rssclient / serv_rssclient.c
index 79ba35c6058fdadd06a591a3f86f21b09080230f..72717359a6fc9f1fdb8aa0fc08eb6b4156e8db78 100644 (file)
@@ -101,14 +101,16 @@ void DeleteRoomReference(long QRnumber)
 
        At = GetNewHashPos(RSSQueueRooms, 0);
 
-       GetHashPosFromKey(RSSQueueRooms, LKEY(QRnumber), At);
-       GetHashPos(RSSQueueRooms, At, &HKLen, &HK, &vData);
-       if (vData != NULL)
+       if (GetHashPosFromKey(RSSQueueRooms, LKEY(QRnumber), At))
        {
-               pRoomC = (rss_room_counter *) vData;
-               pRoomC->count --;
-               if (pRoomC->count == 0)
-                       DeleteEntryFromHash(RSSQueueRooms, At);
+               GetHashPos(RSSQueueRooms, At, &HKLen, &HK, &vData);
+               if (vData != NULL)
+               {
+                       pRoomC = (rss_room_counter *) vData;
+                       pRoomC->count --;
+                       if (pRoomC->count == 0)
+                               DeleteEntryFromHash(RSSQueueRooms, At);
+               }
        }
        DeleteHashPos(&At);
 }
@@ -146,7 +148,7 @@ void UnlinkRSSAggregator(rss_aggregator *Cfg)
        UnlinkRooms(Cfg);
 
        At = GetNewHashPos(RSSFetchUrls, 0);
-       if (GetHashPosFromKey(RSSFetchUrls, SKEY(Cfg->Url), At) == 0)
+       if (GetHashPosFromKey(RSSFetchUrls, SKEY(Cfg->Url), At))
        {
                DeleteEntryFromHash(RSSFetchUrls, At);
        }