From 3b58c25ccfb4de60ca9c928874e0d68418011524 Mon Sep 17 00:00:00 2001 From: Noriko Hosoi Date: Nov 02 2011 01:06:54 +0000 Subject: Bug 750625 - Fix Coverity (11113) Uninitialized pointer read https://bugzilla.redhat.com/show_bug.cgi?id=750625 slapd/auditlog.c (write_audit_log_entry) Bug Description: Using uninitialized value "change" when calling "write_audit_file". If it is not a supported operation type, no need to log it in the audit log. Fix Description: Once it's determined as an unsupported operation type, return without calling write_audit_file. --- diff --git a/ldap/servers/slapd/auditlog.c b/ldap/servers/slapd/auditlog.c index d000550..0128f2f 100644 --- a/ldap/servers/slapd/auditlog.c +++ b/ldap/servers/slapd/auditlog.c @@ -66,37 +66,39 @@ write_audit_log_entry( Slapi_PBlock *pb ) Slapi_DN *sdn; const char *dn; void *change; - int flag = 0; - Operation *op; + int flag = 0; + Operation *op; - /* if the audit log is not enabled, just skip all of - this stuff */ - if (!config_get_auditlog_logging_enabled()) { - return; - } + /* if the audit log is not enabled, just skip all of + this stuff */ + if (!config_get_auditlog_logging_enabled()) { + return; + } - slapi_pblock_get( pb, SLAPI_OPERATION, &op ); + slapi_pblock_get( pb, SLAPI_OPERATION, &op ); slapi_pblock_get( pb, SLAPI_TARGET_SDN, &sdn ); - dn = slapi_sdn_get_dn(sdn); switch ( operation_get_type(op) ) - { + { case SLAPI_OPERATION_MODIFY: - slapi_pblock_get( pb, SLAPI_MODIFY_MODS, &change ); - break; + slapi_pblock_get( pb, SLAPI_MODIFY_MODS, &change ); + break; case SLAPI_OPERATION_DELETE: - { - char * deleterDN = NULL; - slapi_pblock_get(pb, SLAPI_REQUESTOR_DN, &deleterDN); - change = deleterDN; - } - break; - + { + char * deleterDN = NULL; + slapi_pblock_get(pb, SLAPI_REQUESTOR_DN, &deleterDN); + change = deleterDN; + } + break; + case SLAPI_OPERATION_MODDN: - slapi_pblock_get( pb, SLAPI_MODRDN_NEWRDN, &change ); - slapi_pblock_get( pb, SLAPI_MODRDN_DELOLDRDN, &flag ); - break; + slapi_pblock_get( pb, SLAPI_MODRDN_NEWRDN, &change ); + slapi_pblock_get( pb, SLAPI_MODRDN_DELOLDRDN, &flag ); + break; + default: + return; /* Unsupported operation type. */ } curtime = current_time(); + dn = slapi_sdn_get_dn(sdn); write_audit_file( operation_get_type(op), dn, change, flag, curtime ); }