channel.c: Address stack overflow in does_id_conflict()
authorGeorge Joseph <gjoseph@digium.com>
Fri, 21 Sep 2018 20:23:34 +0000 (14:23 -0600)
committerGeorge Joseph <gjoseph@digium.com>
Fri, 21 Sep 2018 20:32:31 +0000 (15:32 -0500)
does_id_conflict() was passing a pointer to an int to a callback
that expected a pointer to a size_t.

Found by the Address Sanitizer.

Change-Id: I0ff542067eef63a14a60301654d65d34fe2ad503

main/channel.c

index b549299..eb0e34a 100644 (file)
@@ -751,7 +751,7 @@ static int ast_channel_by_uniqueid_cb(void *obj, void *arg, void *data, int flag
 static int does_id_conflict(const char *uniqueid)
 {
        struct ast_channel *conflict;
-       int length = 0;
+       size_t length = 0;
 
        if (ast_strlen_zero(uniqueid)) {
                return 0;