module-stream-restore: use entry_write when filling up the database

It seems at some point the code migrated to use the entry_write calls,
but fill_db is still using the old syntax, causing the entry to be
invalid.

The crash happens when clean_up_db gets called, which then calls
entry_read, causing the crash.

Signed-off-by: Ricardo Salveti de Araujo <ricardo.salveti@canonical.com>
This commit is contained in:
Ricardo Salveti de Araujo 2014-10-01 20:07:04 -03:00 committed by David Henningsson
parent 8fb5e7c32a
commit 9dd4e8df3e

View file

@ -1831,7 +1831,6 @@ static int fill_db(struct userdata *u, const char *filename) {
*d = 0; *d = 0;
if (pa_atod(v, &db) >= 0) { if (pa_atod(v, &db) >= 0) {
if (db <= 0.0) { if (db <= 0.0) {
pa_datum key, data;
struct entry e; struct entry e;
pa_zero(e); pa_zero(e);
@ -1840,13 +1839,7 @@ static int fill_db(struct userdata *u, const char *filename) {
pa_cvolume_set(&e.volume, 1, pa_sw_volume_from_dB(db)); pa_cvolume_set(&e.volume, 1, pa_sw_volume_from_dB(db));
pa_channel_map_init_mono(&e.channel_map); pa_channel_map_init_mono(&e.channel_map);
key.data = (void *) ln; if (entry_write(u, ln, &e, false))
key.size = strlen(ln);
data.data = (void *) &e;
data.size = sizeof(e);
if (pa_database_set(u->database, &key, &data, false) == 0)
pa_log_debug("Setting %s to %0.2f dB.", ln, db); pa_log_debug("Setting %s to %0.2f dB.", ln, db);
} else } else
pa_log_warn("[%s:%u] Positive dB values are not allowed, not setting entry %s.", fn, n, ln); pa_log_warn("[%s:%u] Positive dB values are not allowed, not setting entry %s.", fn, n, ln);