result = (ctx->return_code >= 0); 
result = (ctx->return_valid == AUDITSC_SUCCESS); 
static int audit_filter_rules(struct task_struct *tsk,			      struct audit_rule *rule,			      struct audit_context *ctx,			      enum audit_state *state){	int i, j;	for (i = 0; i < rule->field_count; i++) {		u32 field  = rule->fields[i] & ~AUDIT_NEGATE;		u32 value  = rule->values[i];		int result = 0;		switch (field) {		case AUDIT_PID:			result = (tsk->pid == value);			break;		case AUDIT_UID:			result = (tsk->uid == value);			break;		case AUDIT_EUID:			result = (tsk->euid == value);			break;		case AUDIT_SUID:			result = (tsk->suid == value);			break;		case AUDIT_FSUID:			result = (tsk->fsuid == value);			break;		case AUDIT_GID:			result = (tsk->gid == value);			break;		case AUDIT_EGID:			result = (tsk->egid == value);			break;		case AUDIT_SGID:			result = (tsk->sgid == value);			break;		case AUDIT_FSGID:			result = (tsk->fsgid == value);			break;		case AUDIT_PERS:			result = (tsk->personality == value);			break;		case AUDIT_EXIT:			if (ctx && ctx->return_valid)				result = (ctx->return_code == value);			break;		case AUDIT_SUCCESS:			if (ctx && ctx->return_valid)				result = (ctx->return_code >= 0);			break;		case AUDIT_DEVMAJOR:			if (ctx) {				for (j = 0; j < ctx->name_count; j++) {					if (MAJOR(ctx->names[j].dev)==value) {						++result;						break;					}				}			}			break;		case AUDIT_DEVMINOR:			if (ctx) {				for (j = 0; j < ctx->name_count; j++) {					if (MINOR(ctx->names[j].dev)==value) {						++result;						break;					}				}			}			break;		case AUDIT_INODE:			if (ctx) {				for (j = 0; j < ctx->name_count; j++) {					if (ctx->names[j].ino == value) {						++result;						break;					}				}			}			break;		case AUDIT_LOGINUID:			result = 0;			if (ctx)				result = (ctx->loginuid == value);			break;		case AUDIT_ARG0:		case AUDIT_ARG1:		case AUDIT_ARG2:		case AUDIT_ARG3:			if (ctx)				result = (ctx->argv[field-AUDIT_ARG0]==value);			break;		}		if (rule->fields[i] & AUDIT_NEGATE)			result = !result;		if (!result)			return 0;	}	switch (rule->action) {	case AUDIT_NEVER:    *state = AUDIT_DISABLED;	    break;	case AUDIT_POSSIBLE: *state = AUDIT_BUILD_CONTEXT;  break;	case AUDIT_ALWAYS:   *state = AUDIT_RECORD_CONTEXT; break;	}	return 1;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/2fd6f58ba6efc82ea2c9c2630f7ff5ed9eeaf34a/auditsc.c/buggy/kernel/auditsc.c