• D
    xen: fix race in refresh of config cache · 427067f7
    Daniel P. Berrange 提交于
    The xenXMConfigCacheRefresh method scans /etc/xen and loads
    all config files it finds. It then scans its internal hash
    table and purges any (previously) loaded config files whose
    refresh timestamp does not match the timestamp recorded at
    the start of xenXMConfigCacheRefresh(). There is unfortunately
    a subtle flaw in this, because if loading the config files
    takes longer than 1 second, some of the config files will
    have a refresh timestamp that is 1 or more seconds different
    (newer) than is checked for. So we immediately purge a bunch
    of valid config files we just loaded.
    
    To avoid this flaw, we must pass the timestamp we record at
    the start of xenXMConfigCacheRefresh() into the
    xenXMConfigCacheAddFile() method, instead of letting the
    latter call time(NULL) again.
    Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
    427067f7
xm_internal.c 39.5 KB