Program: 15093
Project: 15093
Buggy source:
public UpdateUserResponseType updateUser(UpdateUserType request) throws EucalyptusCloudException {
  UpdateUserResponseType reply=request.getReply();
  reply.getResponseMetadata().setRequestId(reply.getCorrelationId());
  String action=PolicySpec.requestToAction(request);
  Context ctx=Contexts.lookup();
  User requestUser=ctx.getUser();
  Account account=getRealAccount(ctx,request.getDelegateAccount());
  User userFound=null;
  try {
    userFound=account.lookupUserByName(request.getUserName());
    if (userFound.isSystemAdmin()) {
      throw new AuthException("String_Node_Str");
    }
  }
 catch (  Exception e) {
    LOG.debug(e,e);
    if (e instanceof AuthException && AuthException.NO_SUCH_USER.equals(e.getMessage())) {
      throw new EuareException(HttpResponseStatus.NOT_FOUND,EuareException.NO_SUCH_ENTITY,"String_Node_Str" + request.getUserName());
    }
 else {
      throw new EucalyptusCloudException(e);
    }
  }
  if (!userFound.getName().equals(requestUser.getName())) {
    if (!Permissions.isAuthorized(PolicySpec.VENDOR_IAM,PolicySpec.IAM_RESOURCE_USER,Accounts.getUserFullName(userFound),account,action,requestUser)) {
      throw new EuareException(HttpResponseStatus.FORBIDDEN,EuareException.NOT_AUTHORIZED,"String_Node_Str" + requestUser.getName());
    }
  }
  try {
    if (request.getNewUserName() != null && !"String_Node_Str".equals(request.getNewUserName())) {
      userFound.setName(request.getNewUserName());
    }
    if (request.getNewPath() != null && !"String_Node_Str".equals(request.getNewPath())) {
      userFound.setPath(sanitizePath(request.getNewPath()));
    }
  }
 catch (  Exception e) {
    LOG.debug(e,e);
    throw new EucalyptusCloudException(e);
  }
  return reply;
}

Fixed version (ground truth):
public UpdateUserResponseType updateUser(UpdateUserType request) throws EucalyptusCloudException {
  UpdateUserResponseType reply=request.getReply();
  reply.getResponseMetadata().setRequestId(reply.getCorrelationId());
  String action=PolicySpec.requestToAction(request);
  Context ctx=Contexts.lookup();
  User requestUser=ctx.getUser();
  Account account=getRealAccount(ctx,request.getDelegateAccount());
  User userFound=null;
  try {
    userFound=account.lookupUserByName(request.getUserName());
    if (userFound.isSystemAdmin() && userFound.isAccountAdmin()) {
      throw new AuthException("String_Node_Str");
    }
  }
 catch (  Exception e) {
    LOG.debug(e,e);
    if (e instanceof AuthException && AuthException.NO_SUCH_USER.equals(e.getMessage())) {
      throw new EuareException(HttpResponseStatus.NOT_FOUND,EuareException.NO_SUCH_ENTITY,"String_Node_Str" + request.getUserName());
    }
 else {
      throw new EucalyptusCloudException(e);
    }
  }
  if (!userFound.getName().equals(requestUser.getName())) {
    if (!Permissions.isAuthorized(PolicySpec.VENDOR_IAM,PolicySpec.IAM_RESOURCE_USER,Accounts.getUserFullName(userFound),account,action,requestUser)) {
      throw new EuareException(HttpResponseStatus.FORBIDDEN,EuareException.NOT_AUTHORIZED,"String_Node_Str" + requestUser.getName());
    }
  }
  try {
    if (request.getNewUserName() != null && !"String_Node_Str".equals(request.getNewUserName())) {
      userFound.setName(request.getNewUserName());
    }
    if (request.getNewPath() != null && !"String_Node_Str".equals(request.getNewPath())) {
      userFound.setPath(sanitizePath(request.getNewPath()));
    }
  }
 catch (  Exception e) {
    LOG.debug(e,e);
    throw new EucalyptusCloudException(e);
  }
  return reply;
}