[tracker/binary-log] Fix CRC value
- From: Philip Van Hoof <pvanhoof src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker/binary-log] Fix CRC value
- Date: Wed, 30 Dec 2009 13:37:39 +0000 (UTC)
commit ae79dac66692198af5d5471a4436df020ad9ef39
Author: Philip Van Hoof <philip codeminded be>
Date: Wed Dec 30 14:36:17 2009 +0100
Fix CRC value
src/libtracker-db/tracker-db-journal.c | 12 ++++++++----
1 files changed, 8 insertions(+), 4 deletions(-)
---
diff --git a/src/libtracker-db/tracker-db-journal.c b/src/libtracker-db/tracker-db-journal.c
index ba03c45..8325854 100644
--- a/src/libtracker-db/tracker-db-journal.c
+++ b/src/libtracker-db/tracker-db-journal.c
@@ -155,6 +155,8 @@ tracker_db_journal_start_transaction (void)
/* Leave space for size, amount and crc */
+ memset (cur_block, 0, size);
+
cur_pos = cur_block_len = size;
cur_entry_amount = 0;
}
@@ -290,18 +292,20 @@ tracker_db_journal_commit_transaction (void)
g_assert (journal);
- crc = tracker_crc32 (cur_block, cur_block_len);
-
cur_block_maybe_expand (size);
cur_setnum (cur_block, &begin_pos, cur_block_len);
cur_setnum (cur_block, &begin_pos, cur_entry_amount);
- cur_setnum (cur_block, &begin_pos, crc);
cur_setnum (cur_block, &cur_pos, cur_block_len);
cur_block_len += size;
+ /* CRC is calculated with CRC's own bytes set to zeroes */
+
+ crc = tracker_crc32 (cur_block, cur_block_len);
+ cur_setnum (cur_block, &begin_pos, crc);
+
write (fileno (journal), cur_block, cur_block_len);
current_size += cur_block_len;
@@ -337,7 +341,7 @@ tracker_db_journal_close (void)
int main () {
guint i;
- tracker_db_journal_open ();
+ tracker_db_journal_open ("/tmp/test");
tracker_db_journal_start_transaction ();
tracker_db_journal_append_resource (10, "http://resource");
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]