Program: 192222
Project: 192222
Buggy source:
void dump(FileDescriptor fd,PrintWriter pw,String[] args){
  if (getContext().checkCallingOrSelfPermission(android.Manifest.permission.DUMP) != PackageManager.PERMISSION_GRANTED) {
    pw.println("String_Node_Str" + Binder.getCallingPid() + "String_Node_Str"+ Binder.getCallingUid()+ "String_Node_Str"+ android.Manifest.permission.DUMP);
    return;
  }
  if (args != null) {
    int userId=UserHandle.USER_SYSTEM;
    for (int i=0; i < args.length; i++) {
      String arg=args[i];
      if ("String_Node_Str".equals(arg)) {
        dumpHelp(pw);
        return;
      }
 else       if ("String_Node_Str".equals(arg)) {
        i++;
        if (i < args.length) {
          arg=args[i];
          userId=Integer.parseInt(arg);
        }
      }
 else       if ("String_Node_Str".equals(arg)) {
      }
 else       if (arg.length() > 0 && arg.charAt(0) == '-') {
        pw.println("String_Node_Str" + arg);
        return;
      }
 else {
        Shell shell=new Shell();
        shell.userId=userId;
        String[] newArgs=new String[args.length - i];
        System.arraycopy(args,i,newArgs,0,args.length - i);
        shell.exec(mBinderService,null,fd,null,newArgs,new ResultReceiver(null));
        return;
      }
    }
  }
synchronized (this) {
    mConstants.dump(pw);
    if (mEventCmds[0] != EVENT_NULL) {
      pw.println("String_Node_Str");
      long now=SystemClock.elapsedRealtime();
      for (int i=EVENT_BUFFER_SIZE - 1; i >= 0; i--) {
        int cmd=mEventCmds[i];
        if (cmd == EVENT_NULL) {
          continue;
        }
        String label;
switch (mEventCmds[i]) {
case EVENT_NORMAL:
          label="String_Node_Str";
        break;
case EVENT_LIGHT_IDLE:
      label="String_Node_Str";
    break;
case EVENT_LIGHT_MAINTENANCE:
  label="String_Node_Str";
break;
case EVENT_DEEP_IDLE:
label="String_Node_Str";
break;
case EVENT_DEEP_MAINTENANCE:
label="String_Node_Str";
break;
default :
label="String_Node_Str";
break;
}
pw.print("String_Node_Str");
pw.print(label);
pw.print("String_Node_Str");
TimeUtils.formatDuration(mEventTimes[i],now,pw);
;
pw.println();
}
}
int size=mPowerSaveWhitelistAppsExceptIdle.size();
if (size > 0) {
pw.println("String_Node_Str");
for (int i=0; i < size; i++) {
pw.print("String_Node_Str");
pw.println(mPowerSaveWhitelistAppsExceptIdle.keyAt(i));
}
}
size=mPowerSaveWhitelistApps.size();
if (size > 0) {
pw.println("String_Node_Str");
for (int i=0; i < size; i++) {
pw.print("String_Node_Str");
pw.println(mPowerSaveWhitelistApps.keyAt(i));
}
}
size=mPowerSaveWhitelistUserApps.size();
if (size > 0) {
pw.println("String_Node_Str");
for (int i=0; i < size; i++) {
pw.print("String_Node_Str");
pw.println(mPowerSaveWhitelistUserApps.keyAt(i));
}
}
size=mPowerSaveWhitelistExceptIdleAppIds.size();
if (size > 0) {
pw.println("String_Node_Str");
for (int i=0; i < size; i++) {
pw.print("String_Node_Str");
pw.print(mPowerSaveWhitelistExceptIdleAppIds.keyAt(i));
pw.println();
}
}
size=mPowerSaveWhitelistUserAppIds.size();
if (size > 0) {
pw.println("String_Node_Str");
for (int i=0; i < size; i++) {
pw.print("String_Node_Str");
pw.print(mPowerSaveWhitelistUserAppIds.keyAt(i));
pw.println();
}
}
size=mPowerSaveWhitelistAllAppIds.size();
if (size > 0) {
pw.println("String_Node_Str");
for (int i=0; i < size; i++) {
pw.print("String_Node_Str");
pw.print(mPowerSaveWhitelistAllAppIds.keyAt(i));
pw.println();
}
}
size=mTempWhitelistAppIdEndTimes.size();
if (size > 0) {
pw.println("String_Node_Str");
final long timeNow=SystemClock.elapsedRealtime();
for (int i=0; i < size; i++) {
pw.print("String_Node_Str");
pw.print(mTempWhitelistAppIdEndTimes.keyAt(i));
pw.print("String_Node_Str");
Pair<MutableLong,String> entry=mTempWhitelistAppIdEndTimes.valueAt(i);
TimeUtils.formatDuration(entry.first.value,timeNow,pw);
pw.print("String_Node_Str");
pw.println(entry.second);
}
}
size=mTempWhitelistAppIdArray != null ? mTempWhitelistAppIdArray.length : 0;
if (size > 0) {
pw.println("String_Node_Str");
for (int i=0; i < size; i++) {
pw.print("String_Node_Str");
pw.print(mTempWhitelistAppIdArray[i]);
pw.println();
}
}
pw.print("String_Node_Str");
pw.print(mLightEnabled);
pw.print("String_Node_Str");
pw.println(mDeepEnabled);
pw.print("String_Node_Str");
pw.println(mForceIdle);
pw.print("String_Node_Str");
pw.println(mMotionSensor);
pw.print("String_Node_Str");
pw.println(mCurDisplay);
pw.print("String_Node_Str");
pw.println(mScreenOn);
pw.print("String_Node_Str");
pw.println(mCharging);
pw.print("String_Node_Str");
pw.println(mMotionListener.active);
pw.print("String_Node_Str");
pw.println(mNotMoving);
pw.print("String_Node_Str");
pw.print(mLocating);
pw.print("String_Node_Str");
pw.print(mHasGps);
pw.print("String_Node_Str");
pw.print(mHasNetworkLocation);
pw.print("String_Node_Str");
pw.println(mLocated);
if (mLastGenericLocation != null) {
pw.print("String_Node_Str");
pw.println(mLastGenericLocation);
}
if (mLastGpsLocation != null) {
pw.print("String_Node_Str");
pw.println(mLastGpsLocation);
}
pw.print("String_Node_Str");
pw.print(stateToString(mState));
pw.print("String_Node_Str");
pw.println(lightStateToString(mLightState));
pw.print("String_Node_Str");
TimeUtils.formatDuration(mInactiveTimeout,pw);
pw.println();
if (mActiveIdleOpCount != 0) {
pw.print("String_Node_Str");
pw.println(mActiveIdleOpCount);
}
if (mNextAlarmTime != 0) {
pw.print("String_Node_Str");
TimeUtils.formatDuration(mNextAlarmTime,SystemClock.elapsedRealtime(),pw);
pw.println();
}
if (mNextIdlePendingDelay != 0) {
pw.print("String_Node_Str");
TimeUtils.formatDuration(mNextIdlePendingDelay,pw);
pw.println();
}
if (mNextIdleDelay != 0) {
pw.print("String_Node_Str");
TimeUtils.formatDuration(mNextIdleDelay,pw);
pw.println();
}
if (mNextLightIdleDelay != 0) {
pw.print("String_Node_Str");
TimeUtils.formatDuration(mNextLightIdleDelay,pw);
pw.println();
}
if (mNextLightAlarmTime != 0) {
pw.print("String_Node_Str");
TimeUtils.formatDuration(mNextLightAlarmTime,SystemClock.elapsedRealtime(),pw);
pw.println();
}
if (mCurIdleBudget != 0) {
pw.print("String_Node_Str");
TimeUtils.formatDuration(mCurIdleBudget,pw);
pw.println();
}
if (mMaintenanceStartTime != 0) {
pw.print("String_Node_Str");
TimeUtils.formatDuration(mMaintenanceStartTime,SystemClock.elapsedRealtime(),pw);
pw.println();
}
if (mJobsActive) {
pw.print("String_Node_Str");
pw.println(mJobsActive);
}
if (mAlarmsActive) {
pw.print("String_Node_Str");
pw.println(mAlarmsActive);
}
if (mDownloadServiceActive != null) {
pw.print("String_Node_Str");
pw.println(mDownloadServiceActive);
}
}
}

Fixed version (ground truth):
void dump(FileDescriptor fd,PrintWriter pw,String[] args){
  if (getContext().checkCallingOrSelfPermission(android.Manifest.permission.DUMP) != PackageManager.PERMISSION_GRANTED) {
    pw.println("String_Node_Str" + Binder.getCallingPid() + "String_Node_Str"+ Binder.getCallingUid()+ "String_Node_Str"+ android.Manifest.permission.DUMP);
    return;
  }
  if (args != null) {
    int userId=UserHandle.USER_SYSTEM;
    for (int i=0; i < args.length; i++) {
      String arg=args[i];
      if ("String_Node_Str".equals(arg)) {
        dumpHelp(pw);
        return;
      }
 else       if ("String_Node_Str".equals(arg)) {
        i++;
        if (i < args.length) {
          arg=args[i];
          userId=Integer.parseInt(arg);
        }
      }
 else       if ("String_Node_Str".equals(arg)) {
      }
 else       if (arg.length() > 0 && arg.charAt(0) == '-') {
        pw.println("String_Node_Str" + arg);
        return;
      }
 else {
        Shell shell=new Shell();
        shell.userId=userId;
        String[] newArgs=new String[args.length - i];
        System.arraycopy(args,i,newArgs,0,args.length - i);
        shell.exec(mBinderService,null,fd,null,newArgs,new ResultReceiver(null));
        return;
      }
    }
  }
synchronized (this) {
    mConstants.dump(pw);
    if (mEventCmds[0] != EVENT_NULL) {
      pw.println("String_Node_Str");
      long now=SystemClock.elapsedRealtime();
      for (int i=EVENT_BUFFER_SIZE - 1; i >= 0; i--) {
        int cmd=mEventCmds[i];
        if (cmd == EVENT_NULL) {
          continue;
        }
        String label;
switch (mEventCmds[i]) {
case EVENT_NORMAL:
          label="String_Node_Str";
        break;
case EVENT_LIGHT_IDLE:
      label="String_Node_Str";
    break;
case EVENT_LIGHT_MAINTENANCE:
  label="String_Node_Str";
break;
case EVENT_DEEP_IDLE:
label="String_Node_Str";
break;
case EVENT_DEEP_MAINTENANCE:
label="String_Node_Str";
break;
default :
label="String_Node_Str";
break;
}
pw.print("String_Node_Str");
pw.print(label);
pw.print("String_Node_Str");
TimeUtils.formatDuration(mEventTimes[i],now,pw);
;
pw.println();
}
}
int size=mPowerSaveWhitelistAppsExceptIdle.size();
if (size > 0) {
pw.println("String_Node_Str");
for (int i=0; i < size; i++) {
pw.print("String_Node_Str");
pw.println(mPowerSaveWhitelistAppsExceptIdle.keyAt(i));
}
}
size=mPowerSaveWhitelistApps.size();
if (size > 0) {
pw.println("String_Node_Str");
for (int i=0; i < size; i++) {
pw.print("String_Node_Str");
pw.println(mPowerSaveWhitelistApps.keyAt(i));
}
}
size=mPowerSaveWhitelistUserApps.size();
if (size > 0) {
pw.println("String_Node_Str");
for (int i=0; i < size; i++) {
pw.print("String_Node_Str");
pw.println(mPowerSaveWhitelistUserApps.keyAt(i));
}
}
size=mPowerSaveWhitelistExceptIdleAppIds.size();
if (size > 0) {
pw.println("String_Node_Str");
for (int i=0; i < size; i++) {
pw.print("String_Node_Str");
pw.print(mPowerSaveWhitelistExceptIdleAppIds.keyAt(i));
pw.println();
}
}
size=mPowerSaveWhitelistUserAppIds.size();
if (size > 0) {
pw.println("String_Node_Str");
for (int i=0; i < size; i++) {
pw.print("String_Node_Str");
pw.print(mPowerSaveWhitelistUserAppIds.keyAt(i));
pw.println();
}
}
size=mPowerSaveWhitelistAllAppIds.size();
if (size > 0) {
pw.println("String_Node_Str");
for (int i=0; i < size; i++) {
pw.print("String_Node_Str");
pw.print(mPowerSaveWhitelistAllAppIds.keyAt(i));
pw.println();
}
}
size=mTempWhitelistAppIdEndTimes.size();
if (size > 0) {
pw.println("String_Node_Str");
final long timeNow=SystemClock.elapsedRealtime();
for (int i=0; i < size; i++) {
pw.print("String_Node_Str");
pw.print(mTempWhitelistAppIdEndTimes.keyAt(i));
pw.print("String_Node_Str");
Pair<MutableLong,String> entry=mTempWhitelistAppIdEndTimes.valueAt(i);
TimeUtils.formatDuration(entry.first.value,timeNow,pw);
pw.print("String_Node_Str");
pw.println(entry.second);
}
}
size=mTempWhitelistAppIdArray != null ? mTempWhitelistAppIdArray.length : 0;
if (size > 0) {
pw.println("String_Node_Str");
for (int i=0; i < size; i++) {
pw.print("String_Node_Str");
pw.print(mTempWhitelistAppIdArray[i]);
pw.println();
}
}
pw.print("String_Node_Str");
pw.print(mLightEnabled);
pw.print("String_Node_Str");
pw.println(mDeepEnabled);
pw.print("String_Node_Str");
pw.println(mForceIdle);
pw.print("String_Node_Str");
pw.println(mMotionSensor);
pw.print("String_Node_Str");
pw.println(mCurDisplay);
pw.print("String_Node_Str");
pw.println(mScreenOn);
pw.print("String_Node_Str");
pw.println(mNetworkConnected);
pw.print("String_Node_Str");
pw.println(mCharging);
pw.print("String_Node_Str");
pw.println(mMotionListener.active);
pw.print("String_Node_Str");
pw.println(mNotMoving);
pw.print("String_Node_Str");
pw.print(mLocating);
pw.print("String_Node_Str");
pw.print(mHasGps);
pw.print("String_Node_Str");
pw.print(mHasNetworkLocation);
pw.print("String_Node_Str");
pw.println(mLocated);
if (mLastGenericLocation != null) {
pw.print("String_Node_Str");
pw.println(mLastGenericLocation);
}
if (mLastGpsLocation != null) {
pw.print("String_Node_Str");
pw.println(mLastGpsLocation);
}
pw.print("String_Node_Str");
pw.print(stateToString(mState));
pw.print("String_Node_Str");
pw.println(lightStateToString(mLightState));
pw.print("String_Node_Str");
TimeUtils.formatDuration(mInactiveTimeout,pw);
pw.println();
if (mActiveIdleOpCount != 0) {
pw.print("String_Node_Str");
pw.println(mActiveIdleOpCount);
}
if (mNextAlarmTime != 0) {
pw.print("String_Node_Str");
TimeUtils.formatDuration(mNextAlarmTime,SystemClock.elapsedRealtime(),pw);
pw.println();
}
if (mNextIdlePendingDelay != 0) {
pw.print("String_Node_Str");
TimeUtils.formatDuration(mNextIdlePendingDelay,pw);
pw.println();
}
if (mNextIdleDelay != 0) {
pw.print("String_Node_Str");
TimeUtils.formatDuration(mNextIdleDelay,pw);
pw.println();
}
if (mNextLightIdleDelay != 0) {
pw.print("String_Node_Str");
TimeUtils.formatDuration(mNextLightIdleDelay,pw);
pw.println();
}
if (mNextLightAlarmTime != 0) {
pw.print("String_Node_Str");
TimeUtils.formatDuration(mNextLightAlarmTime,SystemClock.elapsedRealtime(),pw);
pw.println();
}
if (mCurIdleBudget != 0) {
pw.print("String_Node_Str");
TimeUtils.formatDuration(mCurIdleBudget,pw);
pw.println();
}
if (mMaintenanceStartTime != 0) {
pw.print("String_Node_Str");
TimeUtils.formatDuration(mMaintenanceStartTime,SystemClock.elapsedRealtime(),pw);
pw.println();
}
if (mJobsActive) {
pw.print("String_Node_Str");
pw.println(mJobsActive);
}
if (mAlarmsActive) {
pw.print("String_Node_Str");
pw.println(mAlarmsActive);
}
if (mDownloadServiceActive != null) {
pw.print("String_Node_Str");
pw.println(mDownloadServiceActive);
}
}
}