    protected function parseChunkedRequest(Request $request)
    {
        $session = $this->container->get('session');

        $orig = $request->get('name');
        $index = $request->get('chunk');
        $last = (int) $request->get('chunks') - 1 === (int) $request->get('chunk');

        // it is possible, that two clients send a file with the
        // exact same filename, therefore we have to add the session
        // to the uuid otherwise we will get a mess
        $uuid = md5(sprintf('%s.%s', $orig, $session->getId()));

        return [$last, $uuid, $index, $orig];
    }
The software uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the software does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.