Merge lp://staging/~compiz-team/compiz/compiz.fix_1018602 into lp://staging/compiz/0.9.8
Proposed by
Sam Spilsbury
Status: | Merged |
---|---|
Merged at revision: | 3267 |
Proposed branch: | lp://staging/~compiz-team/compiz/compiz.fix_1018602 |
Merge into: | lp://staging/compiz/0.9.8 |
Diff against target: |
497 lines (+120/-96) 1 file modified
compizconfig/gsettings/src/gsettings.c (+120/-96) |
To merge this branch: | bzr merge lp://staging/~compiz-team/compiz/compiz.fix_1018602 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Daniel van Vugt | Approve | ||
Review via email:
|
This proposal supersedes a proposal from 2012-06-29.
Description of the change
Fixes LP (#1018602) : An invalid read when using g_variant_
No tests yet, tests will be added to gsettings in another commit when the lcc testing work lands.
To post a comment you must log in.
Oops. There is a problem under case TypeMatch:
array is no longer initialized with zeros because you changed calloc to malloc. So the free() loop after it could potentially free an invalid pointer if g_variant_iter_loop doesn't find exactly nItems.
Also, strdup(value) is not necessary if you use: iter_next (iter, "s", &value))
while (g_variant_
*arrayCounter++ = value;
and then change the free() calls below it to g_free().
On that note, the variable variantType should be removed from readListValue. Just use "s", "i", "b" and "d" instead. It will be smaller, faster and more readable.