s3:vfs properly terminate enums in audit modules
authorChristian Ambach <ambi@samba.org>
Tue, 24 May 2011 15:19:52 +0000 (17:19 +0200)
committerChristian Ambach <ambi@samba.org>
Tue, 24 May 2011 16:29:45 +0000 (18:29 +0200)
without the proper terminations of the enums, invalid arguments
for the audit modules will lead to a smbd crash as the loop in
lp_enum() will attempt to access memory behind the array

source3/modules/vfs_audit.c
source3/modules/vfs_extd_audit.c
source3/modules/vfs_full_audit.c

index 349600fc43f5ef2e1f82bd1bbad773e68789e929..8213bafa1cbe0869b5b948330c2031f5e4cf6b5e 100644 (file)
@@ -40,7 +40,8 @@ static int audit_syslog_facility(vfs_handle_struct *handle)
                { LOG_LOCAL4, "LOCAL4" },
                { LOG_LOCAL5, "LOCAL5" },
                { LOG_LOCAL6, "LOCAL6" },
-               { LOG_LOCAL7, "LOCAL7" }
+               { LOG_LOCAL7, "LOCAL7" },
+               { -1, NULL}
        };
 
        int facility;
@@ -61,7 +62,8 @@ static int audit_syslog_priority(vfs_handle_struct *handle)
                { LOG_WARNING, "WARNING" },
                { LOG_NOTICE, "NOTICE" },
                { LOG_INFO, "INFO" },
-               { LOG_DEBUG, "DEBUG" }
+               { LOG_DEBUG, "DEBUG" },
+               { -1, NULL}
        };
 
        int priority;
index 34a43c712f880247f2a8720708c62c4119d5dc97..192b0750ab1ffe13018281025792e2707a733d9c 100644 (file)
@@ -43,7 +43,8 @@ static int audit_syslog_facility(vfs_handle_struct *handle)
                { LOG_LOCAL4, "LOCAL4" },
                { LOG_LOCAL5, "LOCAL5" },
                { LOG_LOCAL6, "LOCAL6" },
-               { LOG_LOCAL7, "LOCAL7" }
+               { LOG_LOCAL7, "LOCAL7" },
+               { -1, NULL}
        };
 
        int facility;
@@ -64,7 +65,8 @@ static int audit_syslog_priority(vfs_handle_struct *handle)
                { LOG_WARNING, "WARNING" },
                { LOG_NOTICE, "NOTICE" },
                { LOG_INFO, "INFO" },
-               { LOG_DEBUG, "DEBUG" }
+               { LOG_DEBUG, "DEBUG" },
+               { -1, NULL}
        };
 
        int priority;
index a723a0ce2d6f92c9aedcd432c6c7a0a4d7a06c7a..e4d9599e74d5b1037bb415279583fa7716293450 100644 (file)
@@ -355,7 +355,8 @@ static int audit_syslog_facility(vfs_handle_struct *handle)
                { LOG_LOCAL4, "LOCAL4" },
                { LOG_LOCAL5, "LOCAL5" },
                { LOG_LOCAL6, "LOCAL6" },
-               { LOG_LOCAL7, "LOCAL7" }
+               { LOG_LOCAL7, "LOCAL7" },
+               { -1, NULL}
        };
 
        int facility;
@@ -375,7 +376,8 @@ static int audit_syslog_priority(vfs_handle_struct *handle)
                { LOG_WARNING, "WARNING" },
                { LOG_NOTICE, "NOTICE" },
                { LOG_INFO, "INFO" },
-               { LOG_DEBUG, "DEBUG" }
+               { LOG_DEBUG, "DEBUG" },
+               { -1, NULL}
        };
 
        int priority;