Program: 2316
Project: 2316
Buggy source:
@Override protected void dump(FileDescriptor fd,PrintWriter pw,String[] args){
  if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.DUMP) != PackageManager.PERMISSION_GRANTED) {
    pw.println("String_Node_Str" + Binder.getCallingPid() + "String_Node_Str"+ Binder.getCallingUid());
    return;
  }
synchronized (mLock) {
    pw.println("String_Node_Str");
    pw.println("String_Node_Str");
    for (    Receiver receiver : mReceivers.values()) {
      pw.println("String_Node_Str" + receiver);
    }
    pw.println("String_Node_Str");
    for (    Map.Entry<String,ArrayList<UpdateRecord>> entry : mRecordsByProvider.entrySet()) {
      pw.println("String_Node_Str" + entry.getKey() + "String_Node_Str");
      for (      UpdateRecord record : entry.getValue()) {
        pw.println("String_Node_Str" + record);
      }
    }
    pw.println("String_Node_Str");
    for (    Map.Entry<String,Location> entry : mLastLocation.entrySet()) {
      String provider=entry.getKey();
      Location location=entry.getValue();
      pw.println("String_Node_Str" + provider + "String_Node_Str"+ location);
    }
    mGeofenceManager.dump(pw);
    if (mEnabledProviders.size() > 0) {
      pw.println("String_Node_Str");
      for (      String i : mEnabledProviders) {
        pw.println("String_Node_Str" + i);
      }
    }
    if (mDisabledProviders.size() > 0) {
      pw.println("String_Node_Str");
      for (      String i : mDisabledProviders) {
        pw.println("String_Node_Str" + i);
      }
    }
    pw.append("String_Node_Str");
    mBlacklist.dump(pw);
    if (mMockProviders.size() > 0) {
      pw.println("String_Node_Str");
      for (      Map.Entry<String,MockProvider> i : mMockProviders.entrySet()) {
        i.getValue().dump(pw,"String_Node_Str");
      }
    }
    pw.append("String_Node_Str");
    mLocationFudger.dump(fd,pw,args);
    if (args.length > 0 && "String_Node_Str".equals(args[0])) {
      return;
    }
    for (    LocationProviderInterface provider : mProviders) {
      pw.print(provider.getName() + "String_Node_Str");
      if (provider instanceof LocationProviderProxy) {
        LocationProviderProxy proxy=(LocationProviderProxy)provider;
        pw.print("String_Node_Str" + proxy.getConnectedPackageName() + "String_Node_Str");
      }
      pw.println("String_Node_Str");
      provider.dump(fd,pw,args);
    }
  }
}

Fixed version (ground truth):
@Override protected void dump(FileDescriptor fd,PrintWriter pw,String[] args){
  if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.DUMP) != PackageManager.PERMISSION_GRANTED) {
    pw.println("String_Node_Str" + Binder.getCallingPid() + "String_Node_Str"+ Binder.getCallingUid());
    return;
  }
synchronized (mLock) {
    pw.println("String_Node_Str");
    pw.println("String_Node_Str");
    for (    Receiver receiver : mReceivers.values()) {
      pw.println("String_Node_Str" + receiver);
    }
    pw.println("String_Node_Str");
    for (    Map.Entry<String,ArrayList<UpdateRecord>> entry : mRecordsByProvider.entrySet()) {
      pw.println("String_Node_Str" + entry.getKey() + "String_Node_Str");
      for (      UpdateRecord record : entry.getValue()) {
        pw.println("String_Node_Str" + record);
      }
    }
    pw.println("String_Node_Str");
    for (    Map.Entry<String,Location> entry : mLastLocation.entrySet()) {
      String provider=entry.getKey();
      Location location=entry.getValue();
      pw.println("String_Node_Str" + provider + "String_Node_Str"+ location);
    }
    pw.println("String_Node_Str");
    for (    Map.Entry<String,Location> entry : mLastLocationCoarseInterval.entrySet()) {
      String provider=entry.getKey();
      Location location=entry.getValue();
      pw.println("String_Node_Str" + provider + "String_Node_Str"+ location);
    }
    mGeofenceManager.dump(pw);
    if (mEnabledProviders.size() > 0) {
      pw.println("String_Node_Str");
      for (      String i : mEnabledProviders) {
        pw.println("String_Node_Str" + i);
      }
    }
    if (mDisabledProviders.size() > 0) {
      pw.println("String_Node_Str");
      for (      String i : mDisabledProviders) {
        pw.println("String_Node_Str" + i);
      }
    }
    pw.append("String_Node_Str");
    mBlacklist.dump(pw);
    if (mMockProviders.size() > 0) {
      pw.println("String_Node_Str");
      for (      Map.Entry<String,MockProvider> i : mMockProviders.entrySet()) {
        i.getValue().dump(pw,"String_Node_Str");
      }
    }
    pw.append("String_Node_Str");
    mLocationFudger.dump(fd,pw,args);
    if (args.length > 0 && "String_Node_Str".equals(args[0])) {
      return;
    }
    for (    LocationProviderInterface provider : mProviders) {
      pw.print(provider.getName() + "String_Node_Str");
      if (provider instanceof LocationProviderProxy) {
        LocationProviderProxy proxy=(LocationProviderProxy)provider;
        pw.print("String_Node_Str" + proxy.getConnectedPackageName() + "String_Node_Str");
      }
      pw.println("String_Node_Str");
      provider.dump(fd,pw,args);
    }
  }
}