#fixed code
                             protected void parse( final InputStream pInput ) throws IOException, ParseException {
		final BufferedReader br = new BufferedReader(new InputStreamReader(pInput));
		StringBuffer buffer = new StringBuffer();
		String key = null;
		int linenr = 0;
		while(true) {
			final String line = br.readLine();
			
			if (line == null) {
				if (buffer.length() > 0) {
					// flush value of previous key
					set(key, buffer.toString());
					buffer = null;
				}
				break;
			}

			linenr++;
			
			final char first = line.charAt(0); 
			if (Character.isLetter(first)) {
				
				// new key
				
				if (buffer.length() > 0) {
					// flush value of previous key
					set(key, buffer.toString());
					buffer = new StringBuffer();
				}
				
				
				final int i = line.indexOf(':');
				
				if (i < 0) {
					throw new ParseException("Line misses ':' delimitter", linenr);
				}
				
				key = line.substring(0, i);
				buffer.append(line.substring(i+1).trim());
				
				continue;
			}
			
			// continuing old value
			buffer.append('\n').append(line.substring(1));
		}
		br.close();
		
	}
#vulnerable code 
                             protected void parse( final InputStream pInput ) throws IOException, ParseException {
		final BufferedReader br = new BufferedReader(new InputStreamReader(pInput));
		StringBuffer buffer = new StringBuffer();
		String key = null;
		int linenr = 0;
		while(true) {
			final String line = br.readLine();
			
			if (line == null) {
				if (buffer.length() > 0) {
					// flush value of previous key
					set(key, buffer.toString());
					buffer = null;
				}
				break;
			}

			linenr++;
			
			final char first = line.charAt(0); 
			if (Character.isLetter(first)) {
				
				// new key
				
				if (buffer.length() > 0) {
					// flush value of previous key
					set(key, buffer.toString());
					buffer = new StringBuffer();
				}
				
				
				final int i = line.indexOf(':');
				
				if (i < 0) {
					throw new ParseException("Line misses ':' delimitter", linenr);
				}
				
				key = line.substring(0, i);
				buffer.append(line.substring(i+1).trim());
				
				continue;
			}
			
			// continueing old value
			buffer.append('\n').append(line.substring(1));
		}
		br.close();
		
	} 
                            #location 14 
                            #vulnerability type RESOURCE_LEAK