Skip to content
  • Markus Armbruster's avatar
    ec17de0a
    migration: Fix migrate-set-parameters argument validation · ec17de0a
    Markus Armbruster authored
    
    
    Commit 741d4086 "migration: Use proper types in json" (v2.12.0)
    switched MigrationParameters to narrower integer types, and removed
    the simplified qmp_migrate_set_parameters()'s argument checking
    accordingly.
    
    Good idea, except qmp_migrate_set_parameters() takes
    MigrateSetParameters, not MigrationParameters.  Its job is updating
    migrate_get_current()->parameters (which *is* of type
    MigrationParameters) according to its argument.  The integers now get
    truncated silently.  Reproducer:
    
        ---> {'execute': 'query-migrate-parameters'}
        <--- {"return": {[...] "compress-threads": 8, [...]}}
        ---> {"execute": "migrate-set-parameters", "arguments": {"compress-threads": 257}}
        <--- {"return": {}}
        ---> {'execute': 'query-migrate-parameters'}
        <--- {"return": {[...] "compress-threads": 1, [...]}}
    
    Fix by resynchronizing MigrateSetParameters with MigrationParameters.
    
    Fixes: 741d4086
    Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
    Reviewed-by: default avatarDr. David Alan Gilbert <dgilbert@redhat.com>
    Message-Id: <20210202141734.2488076-2-armbru@redhat.com>
    Signed-off-by: default avatarDr. David Alan Gilbert <dgilbert@redhat.com>
    ec17de0a
    migration: Fix migrate-set-parameters argument validation
    Markus Armbruster authored
    
    
    Commit 741d4086 "migration: Use proper types in json" (v2.12.0)
    switched MigrationParameters to narrower integer types, and removed
    the simplified qmp_migrate_set_parameters()'s argument checking
    accordingly.
    
    Good idea, except qmp_migrate_set_parameters() takes
    MigrateSetParameters, not MigrationParameters.  Its job is updating
    migrate_get_current()->parameters (which *is* of type
    MigrationParameters) according to its argument.  The integers now get
    truncated silently.  Reproducer:
    
        ---> {'execute': 'query-migrate-parameters'}
        <--- {"return": {[...] "compress-threads": 8, [...]}}
        ---> {"execute": "migrate-set-parameters", "arguments": {"compress-threads": 257}}
        <--- {"return": {}}
        ---> {'execute': 'query-migrate-parameters'}
        <--- {"return": {[...] "compress-threads": 1, [...]}}
    
    Fix by resynchronizing MigrateSetParameters with MigrationParameters.
    
    Fixes: 741d4086
    Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
    Reviewed-by: default avatarDr. David Alan Gilbert <dgilbert@redhat.com>
    Message-Id: <20210202141734.2488076-2-armbru@redhat.com>
    Signed-off-by: default avatarDr. David Alan Gilbert <dgilbert@redhat.com>
Loading