Skip to content

Commit 19a39ec

Browse files
committed
test if sdes param set exists before attempting to read it
I dont need the extra warnings on read failure every time, especially when expected
1 parent 16415ec commit 19a39ec

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

daemon/redis-json.c

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,7 @@ static GQueue* redis_call_media_try_read_sdes(const char* prefix, JsonObject *js
375375
* if its the second or later element. That code is fscking insane */
376376
GQueue *out = NULL;
377377
redis_call_media_sdes_t *sdesref = NULL;
378-
str *testfield = NULL;
378+
str *testfield = NULL, *prefixfield = NULL;
379379
int idx;
380380

381381
/* check if we have any sdes for prefix */
@@ -393,10 +393,17 @@ static GQueue* redis_call_media_try_read_sdes(const char* prefix, JsonObject *js
393393
g_queue_push_tail(out, sdesref);
394394
for (idx = 1; ; idx++) {
395395
free(testfield);
396-
testfield = str_sprintf("%s-%u", prefix, idx);
397-
sdesref = redis_call_media_sdes_create(testfield->s, json);
398-
if (!sdesref) /* no more crypto params */
396+
prefixfield = str_sprintf("%s-%u", prefix, idx);
397+
/* check if we have more sdes for prefix */
398+
testfield = str_sprintf("%s_tag", prefixfield->s);
399+
if (!json_object_has_member(json, testfield->s))
400+
goto done; /* nope */
401+
sdesref = redis_call_media_sdes_create(prefixfield->s, json);
402+
if (!sdesref) {
403+
ilog(LOG_WARNING, "crypto params %s are broken", prefixfield->s);
399404
break;
405+
}
406+
free(prefixfield);
400407
g_queue_push_tail(out, sdesref);
401408
}
402409

@@ -411,6 +418,8 @@ static GQueue* redis_call_media_try_read_sdes(const char* prefix, JsonObject *js
411418
done:
412419
if (testfield)
413420
free(testfield);
421+
if (prefixfield)
422+
free(prefixfield);
414423
return out;
415424
}
416425

0 commit comments

Comments
 (0)