Program: 194559
Project: 194559
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_OWNER;
    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 ("String_Node_Str".equals(arg)) {
synchronized (this) {
          stepIdleStateLocked();
          pw.print("String_Node_Str");
          pw.println(stateToString(mState));
        }
        return;
      }
 else       if ("String_Node_Str".equals(arg)) {
synchronized (this) {
          if (mEnabled) {
            mEnabled=false;
            becomeActiveLocked("String_Node_Str",Process.myUid());
            pw.println("String_Node_Str");
          }
        }
        return;
      }
 else       if ("String_Node_Str".equals(arg)) {
synchronized (this) {
          if (!mEnabled) {
            mEnabled=true;
            becomeInactiveIfAppropriateLocked();
            pw.println("String_Node_Str");
          }
        }
        return;
      }
 else       if ("String_Node_Str".equals(arg)) {
synchronized (this) {
          pw.println(mEnabled ? "String_Node_Str" : "String_Node_Str");
        }
        return;
      }
 else       if ("String_Node_Str".equals(arg)) {
        i++;
        while (i < args.length) {
          arg=args[i];
          i++;
          if (arg.length() < 1 || (arg.charAt(0) != '-' && arg.charAt(0) != '+')) {
            pw.println("String_Node_Str" + arg);
            return;
          }
          char op=arg.charAt(0);
          String pkg=arg.substring(1);
          if (op == '+') {
            if (addPowerSaveWhitelistAppInternal(pkg)) {
              pw.println("String_Node_Str" + pkg);
            }
 else {
              pw.println("String_Node_Str" + pkg);
            }
          }
 else {
            if (removePowerSaveWhitelistAppInternal(pkg)) {
              pw.println("String_Node_Str" + pkg);
            }
          }
        }
        return;
      }
 else       if ("String_Node_Str".equals(arg)) {
        i++;
        if (i >= args.length) {
          pw.println("String_Node_Str");
          return;
        }
        while (i < args.length) {
          arg=args[i];
          i++;
          addPowerSaveTempWhitelistAppInternal(arg,10000L,userId);
        }
      }
 else       if (arg.length() > 0 && arg.charAt(0) == '-') {
        pw.println("String_Node_Str" + arg);
        return;
      }
 else {
        pw.println("String_Node_Str" + arg);
        return;
      }
    }
  }
synchronized (this) {
    mConstants.dump(pw);
    int 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=mPowerSaveWhitelistAppIds.size();
    if (size > 0) {
      pw.println("String_Node_Str");
      for (int i=0; i < size; i++) {
        pw.print("String_Node_Str");
        pw.print(mPowerSaveWhitelistAppIds.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");
        TimeUtils.formatDuration(mTempWhitelistAppIdEndTimes.valueAt(i),timeNow,pw);
        pw.println();
      }
    }
    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.println(mEnabled);
    pw.print("String_Node_Str");
    pw.println(mSigMotionSensor);
    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(mSigMotionActive);
    pw.print("String_Node_Str");
    pw.println(stateToString(mState));
    pw.print("String_Node_Str");
    TimeUtils.formatDuration(mInactiveTimeout,pw);
    pw.println();
    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();
    }
  }
}

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_OWNER;
    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 ("String_Node_Str".equals(arg)) {
synchronized (this) {
          long token=Binder.clearCallingIdentity();
          try {
            stepIdleStateLocked();
            pw.print("String_Node_Str");
            pw.println(stateToString(mState));
          }
  finally {
            Binder.restoreCallingIdentity(token);
          }
        }
        return;
      }
 else       if ("String_Node_Str".equals(arg)) {
synchronized (this) {
          long token=Binder.clearCallingIdentity();
          try {
            if (mEnabled) {
              mEnabled=false;
              becomeActiveLocked("String_Node_Str",Process.myUid());
              pw.println("String_Node_Str");
            }
          }
  finally {
            Binder.restoreCallingIdentity(token);
          }
        }
        return;
      }
 else       if ("String_Node_Str".equals(arg)) {
synchronized (this) {
          long token=Binder.clearCallingIdentity();
          try {
            if (!mEnabled) {
              mEnabled=true;
              becomeInactiveIfAppropriateLocked();
              pw.println("String_Node_Str");
            }
          }
  finally {
            Binder.restoreCallingIdentity(token);
          }
        }
        return;
      }
 else       if ("String_Node_Str".equals(arg)) {
synchronized (this) {
          pw.println(mEnabled ? "String_Node_Str" : "String_Node_Str");
        }
        return;
      }
 else       if ("String_Node_Str".equals(arg)) {
        long token=Binder.clearCallingIdentity();
        try {
          i++;
          while (i < args.length) {
            arg=args[i];
            i++;
            if (arg.length() < 1 || (arg.charAt(0) != '-' && arg.charAt(0) != '+')) {
              pw.println("String_Node_Str" + arg);
              return;
            }
            char op=arg.charAt(0);
            String pkg=arg.substring(1);
            if (op == '+') {
              if (addPowerSaveWhitelistAppInternal(pkg)) {
                pw.println("String_Node_Str" + pkg);
              }
 else {
                pw.println("String_Node_Str" + pkg);
              }
            }
 else {
              if (removePowerSaveWhitelistAppInternal(pkg)) {
                pw.println("String_Node_Str" + pkg);
              }
            }
          }
        }
  finally {
          Binder.restoreCallingIdentity(token);
        }
        return;
      }
 else       if ("String_Node_Str".equals(arg)) {
        long token=Binder.clearCallingIdentity();
        try {
          i++;
          if (i >= args.length) {
            pw.println("String_Node_Str");
            return;
          }
          while (i < args.length) {
            arg=args[i];
            i++;
            addPowerSaveTempWhitelistAppInternal(0,arg,10000L,userId);
          }
        }
  finally {
          Binder.restoreCallingIdentity(token);
        }
      }
 else       if (arg.length() > 0 && arg.charAt(0) == '-') {
        pw.println("String_Node_Str" + arg);
        return;
      }
 else {
        pw.println("String_Node_Str" + arg);
        return;
      }
    }
  }
synchronized (this) {
    mConstants.dump(pw);
    int 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=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");
        TimeUtils.formatDuration(mTempWhitelistAppIdEndTimes.valueAt(i),timeNow,pw);
        pw.println();
      }
    }
    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.println(mEnabled);
    pw.print("String_Node_Str");
    pw.println(mSigMotionSensor);
    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(mSigMotionActive);
    pw.print("String_Node_Str");
    pw.println(stateToString(mState));
    pw.print("String_Node_Str");
    TimeUtils.formatDuration(mInactiveTimeout,pw);
    pw.println();
    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();
    }
  }
}