new upstream release (3.3.0); modify package compatibility for Stretch
[ossec-hids.git] / src / analysisd / lists_make.c
index 7d9730c..d6c603d 100644 (file)
@@ -1,6 +1,3 @@
-/* @(#) $Id: ./src/analysisd/lists_make.c, 2011/09/08 dcid Exp $
- */
-
 /* Copyright (C) 2009 Trend Micro Inc.
  * All right reserved.
  *
 #include <errno.h>
 #include "lists_make.h"
 
+
 void Lists_OP_MakeAll(int force)
 {
     ListNode *lnode = OS_GetFirstList();
-    while(lnode)
-    {
+    while (lnode) {
         Lists_OP_MakeCDB(lnode->txt_filename,
                          lnode->cdb_filename,
                          force);
@@ -32,68 +29,61 @@ void Lists_OP_MakeAll(int force)
     }
 }
 
-void Lists_OP_MakeCDB(char *txt_filename, char *cdb_filename, int force)
+void Lists_OP_MakeCDB(const char *txt_filename, const char *cdb_filename, int force)
 {
-    /*
-    struct stat cdb_stat;
-    struct stat txt_stat;
-    */
     struct cdb_make cdbm;
     FILE *tmp_fd;
     FILE *txt_fd;
     char *tmp_str;
     char *key, *val;
-    char str[OS_MAXSTR+1];
+    char str[OS_MAXSTR + 1];
 
-    str[OS_MAXSTR]= '\0';
+    str[OS_MAXSTR] = '\0';
     char tmp_filename[OS_MAXSTR];
     tmp_filename[OS_MAXSTR - 2] = '\0';
     snprintf(tmp_filename, OS_MAXSTR - 2, "%s.tmp", txt_filename);
 
-    /*
-    if((stat(txt_filename, &txt_stat)) == -1)
-        debug1("%s: stat of file %s failed", ARGV0, txt_filename);
-    if((stat(cdb_filename, &cdb_stat)) == -1)
-        debug1("%s: stat of file %s failed", ARGV0, cdb_filename);
-        */
-    if(File_DateofChange(txt_filename) > File_DateofChange(cdb_filename) ||
-       force)
-    {
+    if (File_DateofChange(txt_filename) > File_DateofChange(cdb_filename) ||
+            force) {
         printf(" * File %s needs to be updated\n", cdb_filename);
         tmp_fd = fopen(tmp_filename, "w+");
         cdb_make_start(&cdbm, tmp_fd);
-        if(!(txt_fd = fopen(txt_filename, "r")))
-        {
-            merror(FOPEN_ERROR, ARGV0, txt_filename);
+        if (!(txt_fd = fopen(txt_filename, "r"))) {
+            merror(FOPEN_ERROR, ARGV0, txt_filename, errno, strerror(errno));
             return;
         }
-        while((fgets(str, OS_MAXSTR-1,txt_fd)) != NULL)
-        {
-            /* Removing new lines or carriage returns. */
+        while ((fgets(str, OS_MAXSTR - 1, txt_fd)) != NULL) {
+            /* Remove newlines and carriage returns */
             tmp_str = strchr(str, '\r');
-            if(tmp_str)
+            if (tmp_str) {
                 *tmp_str = '\0';
+            }
             tmp_str = strchr(str, '\n');
-            if(tmp_str)
+            if (tmp_str) {
                 *tmp_str = '\0';
-            if((val = strchr(str, ':')))
-            {
+            }
+            if ((val = strchr(str, ':'))) {
                 *val = '\0';
                 val++;
-            }
-            else
-            {
+            } else {
                 continue;
             }
             key = str;
             cdb_make_add(&cdbm, key, strlen(key), val, strlen(val));
-            if(force) print_out("  * adding - key: %s value: %s",key,val);
+            if (force) {
+                print_out("  * adding - key: %s value: %s", key, val);
+            }
         }
+
+        fclose(txt_fd);
+
         cdb_make_finish(&cdbm);
-        rename(tmp_filename,cdb_filename);
-    }
-    else
-    {
+        if (rename(tmp_filename, cdb_filename) == -1) {
+            merror(RENAME_ERROR, ARGV0, tmp_filename, cdb_filename, errno, strerror(errno));
+            return;
+        }
+    } else {
         printf(" * File %s does not need to be compiled\n", cdb_filename);
     }
 }
+