        void addEncoded(byte b) {
            if (encoded == null) {
                encoded = new BitSet();
            }
            encoded.set(length);
            data[length++] = b;
            numEncodedBytes++;
        }
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.