Ryan Lortie
fc37611a97
gvdb-reader: drop gvdb_table_walk()
...
The attempt at the simple method for preventing unbounded recursion
proved to be insufficient due to the existence of dconf databases in the
wild that violated the rule (leading to the entire content of the
database being scrapped). It also still had the ugly assert for less
than 64 levels of recursion that could have been hit by a determined
advisary.
gvdb_table_get_names() allows the dconf-service to do everything it
needs without the troubles associated with the walk approach.
2012-07-09 15:28:17 -04:00
Ryan Lortie
d9577f100b
gvdb-reader.c: add gvdb_table_get_names()
...
This function lists off all names that appear within a particular hash.
2012-07-09 14:32:22 -04:00
Ryan Lortie
82cbc59297
remove a stray variable
...
This was used to implement a much more complicated check which was
dismissed in favour of the simple 'must follow in file' approach.
2012-07-08 10:44:05 -04:00
Ryan Lortie
374cb1bc87
gvdb-reader: robustness improvements
...
Improve the robustness of gvdb-reader in two ways.
First: ensure that the result of gvdb_table_has_value() always agrees
with gvdb_table_get_value(). Those two could disagree in the case that
the value was recorded as existing but pointed to an out-of-bounds
region.
Second: prevent gvdb_table_walk() from getting stuck in finite loops due
to self-referential directories.
2012-07-06 21:42:04 -04:00
Ryan Lortie
a9551ccf92
more whitespace fixes
2012-07-05 23:14:55 -04:00
Ryan Lortie
ae3d42c60f
gvdb-reader: refuse to open file with small header
...
Clean up the logic for dealing with invalid headers and include the case
where the file is too small to contain a fully-formed header.
2012-07-05 19:24:46 -04:00
Ryan Lortie
4e77b52ad8
gvdb-reader: correct whitespace damage
2012-07-05 19:13:58 -04:00
Colin Walters
7683c2b796
builder: Note don't actually implement bloom filters
2012-03-08 11:30:03 -05:00
Alexander Larsson
73acf01618
Support creating a GvdbReader from data
...
This is needed for the glib resource work.
2012-01-13 15:59:56 +01:00
Murray Cumming
d1f6300363
Docs: Changed can not to cannot.
...
This is a backport from the glib commit 30fdc1a799
2012-01-13 09:23:06 +01:00
Ryan Lortie
92652ac791
hashing: always use signed chars
...
Our hashing of non-ASCII strings was undefined due to the fact that
'char' is signed on some platforms, unsigned on others. Always use a
signed char.
Discovered by Alexander Larsson.
https://bugzilla.gnome.org/show_bug.cgi?id=658806
2011-09-12 08:12:44 -04:00
Ryan Lortie
a5dd6fcc4f
builder: do not include <unistd.h> on win32
...
Spotted by Kean Johnston <kean.johnston@gmail.com>.
https://mail.gnome.org/archives/gtk-devel-list/2011-April/msg00010.html
2011-04-15 09:27:38 -04:00
Ryan Lortie
3812559659
Remove unused variable in gvdb-reader
...
As originally committed against dconf by Owen.
Newer GCC flags this.
2011-02-03 17:26:51 -05:00
Ryan Lortie
03b6b9fb97
Mark a symbol as G_GNUC_INTERNAL
2011-01-25 18:26:21 -05:00
Ryan Lortie
a2918d6c3e
Fix some harmless sign compare warnings
2011-01-17 15:19:14 -05:00
Ryan Lortie
ba5619ba7f
C++ify the reader header
2011-01-17 15:15:46 -05:00
Ryan Lortie
92c22e7ca7
Fix some leaks in the GVDB builder
2010-12-15 11:36:14 -05:00
Ryan Lortie
814c0fcaaf
Pass name_length to walk close function
...
For efficiency and safety. This way we don't need to scan backwards for
the path separator (trusting that we will find it properly).
2010-12-07 01:36:09 -05:00
Ryan Lortie
e5e491c969
Add gvdb_table_get_raw_value() API for GSettings
2010-10-03 23:02:45 -04:00
Ryan Lortie
a35852bda3
Fix reader on big endian
...
Some of the hashtable code was failing to byteswap properly.
2010-10-03 21:10:35 -04:00
Ryan Lortie
d63f199d92
Fix is_valid() API
...
Actually dereference the pointer instead of just checking for NULL
2010-07-18 21:43:18 -04:00
Ryan Lortie
df40747190
Add gvdb_table_is_valid() API
...
Checks that the on-disk file is still valid.
2010-07-18 20:45:37 -04:00
Ryan Lortie
afea703422
Implement byteswapping in the reader
2010-06-10 15:27:46 -04:00
Ryan Lortie
9a8cba9eb5
drop "options" support
2010-06-10 13:34:56 -04:00
Ryan Lortie
5215d4b6d3
Add API for dconf's sake.
2010-04-28 12:39:02 -05:00
Ryan Lortie
daa1a73c75
Add a missing 'static' on internal functions
2010-04-22 15:45:47 -04:00
Ryan Lortie
291a5c9ed9
__value -> value to avoid stomping the C compiler
2010-04-20 20:12:41 -04:00
Ryan Lortie
2d9811ebda
Don't write out zero-byte sections in builder
...
This and the previous issue caught by Christian Persch in bug #616156
2010-04-19 10:28:44 -04:00
Ryan Lortie
6713b3dbaa
Whitespace fixups
2010-04-19 10:18:44 -04:00
Ryan Lortie
dc2b43b3e7
Fix logic error for missing options in reader
2010-04-19 10:17:31 -04:00
Ryan Lortie
caad55d726
Fix uninitialised header in the builder.
2010-04-16 11:04:15 -04:00
Ryan Lortie
3c10369bf6
Recommend git-merge(1) over git-submodule(1).
2010-04-15 22:12:45 -04:00
Ryan Lortie
3938c73547
Add a brief description to the .doap
2010-04-15 21:32:54 -04:00
Ryan Lortie
0fec2048f0
Initial commit
2010-04-15 21:26:34 -04:00