This test case takes the name of an externally accessible file as input, and treats the file as a global mutex lock. The test case will attempt to 'grab' the mutex lock by checking for the files existence, and creating it if it doesn't exist. The creation of the file is treated as grabbing the lock, and if the test case is able to do so it will enter the critical section and return, deleting the file to 'release' the lock, and finishing execution without error. However, if the file already exists, the test case will continually poll the existence of the file, waiting to be able to 'grab' the lock by creating the file, resulting in a paused state for as long as the file exists.
- Base program: Subversion
- Source Taint: ENVIRONMENT_VARIABLE
- Data Type: HEAP_POINTER
- Data Flow: VAR_ARG_LIST
- Control Flow: INDIRECTLY_RECURSIVE
Have any comments on this test case? Please, send us an email.