Skip to content
  • Markus Armbruster's avatar
    acl: acl_add can't insert before last list element, fix · 4999f3a8
    Markus Armbruster authored
    
    
    Watch this:
    
        $ upstream-qemu -nodefaults -S -vnc :0,acl,sasl -monitor stdio
        QEMU 1.5.50 monitor - type 'help' for more information
        (qemu) acl_add vnc.username drei allow
        acl: added rule at position 1
        (qemu) acl_show vnc.username
        policy: deny
        1: allow drei
        (qemu) acl_add vnc.username zwei allow 1
        acl: added rule at position 2
        (qemu) acl_show vnc.username
        policy: deny
        1: allow drei
        2: allow zwei
        (qemu) acl_add vnc.username eins allow 1
        acl: added rule at position 1
        (qemu) acl_show vnc.username
        policy: deny
        1: allow eins
        2: allow drei
        3: allow zwei
    
    The second acl_add inserts at position 2 instead of 1.
    
    Root cause is an off-by-one in qemu_acl_insert(): when index ==
    acl->nentries, it appends instead of inserting before the last list
    element.
    
    Cc: qemu-stable@nongnu.org
    Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
    Reviewed-by: default avatarMichael Roth <mdroth@linux.vnet.ibm.com>
    Signed-off-by: default avatarMichael Tokarev <mjt@tls.msk.ru>
    4999f3a8