Skip to content
  • Iustin Pop's avatar
    Fix unsafe variant initializer in _TryOSFromDisk · 845da3e8
    Iustin Pop authored
    
    
    In case an OS has inconsistent declarations, we might get into a case
    where one node reports a valid variants list (with OS API >=15), and
    another node has OS API < 15, in which case its supported_variants gets
    the default value of None. This leads to the same variable having
    inconsistent data types, which leads to subtle bugs later: instead of
    reporting something like "Inconsistent OS API versions", the LU exits
    with a run-time exception. Furthermore, in another datapath, variants is
    initialized to '[]' in case of OS diagnose failures.
    
    The patch changes _TryOSFromDisk to initialize variants to '[]' for
    OS api level below 15, and changes the variants calculation in
    DiagnoseOS to be more readable.
    
    Signed-off-by: default avatarIustin Pop <iustin@google.com>
    Reviewed-by: default avatarGuido Trotter <ultrotter@google.com>
    845da3e8