"value":"In the Linux kernel, the following vulnerability has been resolved:\n\nexfat: fix potential deadlock on __exfat_get_dentry_set\n\nWhen accessing a file with more entries than ES_MAX_ENTRY_NUM, the bh-array\nis allocated in __exfat_get_entry_set. The problem is that the bh-array is\nallocated with GFP_KERNEL. It does not make sense. In the following cases,\na deadlock for sbi->s_lock between the two processes may occur.\n\n CPU0 CPU1\n ---- ----\n kswapd\n balance_pgdat\n lock(fs_reclaim)\n exfat_iterate\n lock(&sbi->s_lock)\n exfat_readdir\n exfat_get_uniname_from_ext_entry\n exfat_get_dentry_set\n __exfat_get_dentry_set\n kmalloc_array\n ...\n lock(fs_reclaim)\n ...\n evict\n exfat_evict_inode\n lock(&sbi->s_lock)\n\nTo fix this, let's allocate bh-array with GFP_NOFS."
"value":"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: exfat: corrige un posible punto muerto en __exfat_get_dentry_set Al acceder a un archivo con m\u00e1s entradas que ES_MAX_ENTRY_NUM, la matriz bh se asigna en __exfat_get_entry_set. El problema es que el bh-array est\u00e1 asignado con GFP_KERNEL. No tiene sentido. En los siguientes casos, puede ocurrir un punto muerto para sbi->s_lock entre los dos procesos. CPU0 CPU1 ---- ---- kswapd balance_pgdat lock(fs_reclaim) exfat_iterate lock(&sbi->s_lock) exfat_readdir exfat_get_uniname_from_ext_entry exfat_get_dentry_set __exfat_get_dentry_set kmalloc_array ... lock(fs_reclaim) ... desalojar exfat_evict_inode lock(&sbi->s_lock) para arreglar esto, asignemos bh-array con GFP_NOFS."