Program: 107575
Project: 107575
Buggy source:
private RTCPFBPacket parseRTCPFBPacket(RTCPCompoundPacket base,int firstbyte,int type,int length,DataInputStream in,long senderSSRC,long sourceSSRC) throws IOException {
  RTCPFBPacket fb;
  if (firstbyte == NACKPacket.FMT)   fb=new NACKPacket(base);
 else   fb=new RTCPFBPacket(base);
  fb.fmt=firstbyte;
  fb.type=type;
  fb.senderSSRC=senderSSRC;
  fb.sourceSSRC=sourceSSRC;
  int fcilen=length - 12;
  if (fcilen != 0) {
    fb.fci=new byte[fcilen];
    in.read(fb.fci);
  }
  if (logger.isTraceEnabled()) {
    String ptStr;
    String fmtStr=null;
    String detailStr=null;
switch (fb.type) {
case RTCPFBPacket.PSFB:
      ptStr="String_Node_Str";
switch (fb.fmt) {
case RTCPFeedbackMessageEvent.FMT_FIR:
      fmtStr="String_Node_Str";
    break;
case RTCPFeedbackMessageEvent.FMT_PLI:
  fmtStr="String_Node_Str";
break;
case RTCPREMBPacket.FMT:
fmtStr="String_Node_Str";
break;
}
break;
case RTCPFBPacket.RTPFB:
ptStr="String_Node_Str";
switch (fb.fmt) {
case 1:
fmtStr="String_Node_Str";
break;
case 3:
fmtStr="String_Node_Str";
break;
case 4:
fmtStr="String_Node_Str";
StringBuilder tmmbnFciEntryStr=new StringBuilder();
for (int i=0, end=fcilen - 8; i < end; i+=8) {
int ssrc=RTPTranslatorImpl.readInt(fb.fci,i);
byte b4=fb.fci[i + 4];
int mxTbrExp=(b4 & 0xFC) >>> 2;
byte b6=fb.fci[i + 6];
int mxTbrMantissa=(((b4 & 0x1) << 16) & 0xFF0000) | ((fb.fci[i + 5] << 8) & 0x00FF00) | (b6 & 0x0000FF);
int measuredOverhead=(((b6 & 0x1) << 8) & 0xFF00) | (fb.fci[i + 7] & 0x00FF);
tmmbnFciEntryStr.append("String_Node_Str");
tmmbnFciEntryStr.append(Long.toHexString(ssrc & 0xFFFFFFFFL));
tmmbnFciEntryStr.append("String_Node_Str");
tmmbnFciEntryStr.append(mxTbrExp);
tmmbnFciEntryStr.append("String_Node_Str");
tmmbnFciEntryStr.append(mxTbrMantissa);
tmmbnFciEntryStr.append("String_Node_Str");
tmmbnFciEntryStr.append(measuredOverhead);
}
detailStr=tmmbnFciEntryStr.toString();
break;
}
break;
default :
ptStr=Integer.toString(fb.type);
break;
}
if (fmtStr == null) fmtStr=Integer.toString(fb.fmt);
if (detailStr == null) detailStr="String_Node_Str";
logger.trace("String_Node_Str" + Long.toHexString(senderSSRC) + "String_Node_Str"+ senderSSRC+ "String_Node_Str"+ Long.toHexString(sourceSSRC)+ "String_Node_Str"+ sourceSSRC+ "String_Node_Str"+ ptStr+ "String_Node_Str"+ fmtStr+ detailStr);
}
return fb;
}

Fixed version (ground truth):
private RTCPFBPacket parseRTCPFBPacket(RTCPCompoundPacket base,int firstbyte,int type,int length,DataInputStream in,long senderSSRC,long sourceSSRC) throws IOException {
  RTCPFBPacket fb;
  if (type == RTCPFBPacket.RTPFB && firstbyte == NACKPacket.FMT)   fb=new NACKPacket(base);
 else   fb=new RTCPFBPacket(base);
  fb.fmt=firstbyte;
  fb.type=type;
  fb.senderSSRC=senderSSRC;
  fb.sourceSSRC=sourceSSRC;
  int fcilen=length - 12;
  if (fcilen != 0) {
    fb.fci=new byte[fcilen];
    in.read(fb.fci);
  }
  if (logger.isTraceEnabled()) {
    String ptStr;
    String fmtStr=null;
    String detailStr=null;
switch (fb.type) {
case RTCPFBPacket.PSFB:
      ptStr="String_Node_Str";
switch (fb.fmt) {
case RTCPFeedbackMessageEvent.FMT_FIR:
      fmtStr="String_Node_Str";
    break;
case RTCPFeedbackMessageEvent.FMT_PLI:
  fmtStr="String_Node_Str";
break;
case RTCPREMBPacket.FMT:
fmtStr="String_Node_Str";
break;
}
break;
case RTCPFBPacket.RTPFB:
ptStr="String_Node_Str";
switch (fb.fmt) {
case 1:
fmtStr="String_Node_Str";
break;
case 3:
fmtStr="String_Node_Str";
break;
case 4:
fmtStr="String_Node_Str";
StringBuilder tmmbnFciEntryStr=new StringBuilder();
for (int i=0, end=fcilen - 8; i < end; i+=8) {
int ssrc=RTPTranslatorImpl.readInt(fb.fci,i);
byte b4=fb.fci[i + 4];
int mxTbrExp=(b4 & 0xFC) >>> 2;
byte b6=fb.fci[i + 6];
int mxTbrMantissa=(((b4 & 0x1) << 16) & 0xFF0000) | ((fb.fci[i + 5] << 8) & 0x00FF00) | (b6 & 0x0000FF);
int measuredOverhead=(((b6 & 0x1) << 8) & 0xFF00) | (fb.fci[i + 7] & 0x00FF);
tmmbnFciEntryStr.append("String_Node_Str");
tmmbnFciEntryStr.append(Long.toHexString(ssrc & 0xFFFFFFFFL));
tmmbnFciEntryStr.append("String_Node_Str");
tmmbnFciEntryStr.append(mxTbrExp);
tmmbnFciEntryStr.append("String_Node_Str");
tmmbnFciEntryStr.append(mxTbrMantissa);
tmmbnFciEntryStr.append("String_Node_Str");
tmmbnFciEntryStr.append(measuredOverhead);
}
detailStr=tmmbnFciEntryStr.toString();
break;
}
break;
default :
ptStr=Integer.toString(fb.type);
break;
}
if (fmtStr == null) fmtStr=Integer.toString(fb.fmt);
if (detailStr == null) detailStr="String_Node_Str";
logger.trace("String_Node_Str" + Long.toHexString(senderSSRC) + "String_Node_Str"+ senderSSRC+ "String_Node_Str"+ Long.toHexString(sourceSSRC)+ "String_Node_Str"+ sourceSSRC+ "String_Node_Str"+ ptStr+ "String_Node_Str"+ fmtStr+ detailStr);
}
return fb;
}