Hello Oded Gabbay,

Commit ac0ae6a96aa5 ("habanalabs: add gaudi asic-dependent code")
from May 11, 2020 (linux-next), leads to the following Smatch static
checker warning:

        drivers/accel/habanalabs/gaudi/gaudi.c:1036 _gaudi_init_tpc_mem()
        error: dereferencing freed memory 'cb->buf' (line 1035)

drivers/accel/habanalabs/gaudi/gaudi.c
    1022         for (tpc_id = 0 ; tpc_id < TPC_NUMBER_OF_ENGINES ; tpc_id++) {
    1023                 rc = gaudi_run_tpc_kernel(hdev, dst_addr, tpc_id);
    1024                 if (rc)
    1025                         break;
    1026         }
    1027 
    1028 free_job:
    1029         hl_userptr_delete_list(hdev, &job->userptr_list);
    1030         hl_debugfs_remove_job(hdev, job);
    1031         kfree(job);
    1032         atomic_dec(&cb->cs_cnt);
    1033 
    1034 release_cb:
    1035         hl_cb_put(cb);
                           ^^
cb is freed here.

--> 1036         hl_cb_destroy(&hdev->kernel_mem_mgr, cb->buf->handle);
                                                      ^^^^^^^
So this is a use after free.  Free the handle first?

    1037 
    1038         return rc;
    1039 }

This email is a free service from the Smatch-CI project [smatch.sf.net].

regards,
dan carpenter

Reply via email to