Fix: define _LGPL_SOURCE in C files
[lttng-tools.git] / src / common / index / index.c
index 54689677ee4a2f3dd3c56a6f06236115f659ead6..35cff533c59150171fa28ec880b473cc1cf3f784 100644 (file)
@@ -17,6 +17,7 @@
  */
 
 #define _GNU_SOURCE
+#define _LGPL_SOURCE
 #include <assert.h>
 #include <sys/stat.h>
 #include <sys/types.h>
@@ -24,6 +25,7 @@
 
 #include <common/common.h>
 #include <common/defaults.h>
+#include <common/compat/endian.h>
 #include <common/utils.h>
 
 #include "index.h"
@@ -52,7 +54,7 @@ int index_create_file(char *path_name, char *stream_name, int uid, int gid,
        ret = run_as_mkdir(fullpath, S_IRWXU | S_IRWXG, uid, gid);
        if (ret < 0) {
                if (ret != -EEXIST) {
-                       ERR("Index trace directory creation error");
+                       PERROR("Index trace directory creation error");
                        goto error;
                }
        }
@@ -67,7 +69,7 @@ int index_create_file(char *path_name, char *stream_name, int uid, int gid,
        hdr.magic = htobe32(CTF_INDEX_MAGIC);
        hdr.index_major = htobe32(CTF_INDEX_MAJOR);
        hdr.index_minor = htobe32(CTF_INDEX_MINOR);
-       hdr.packet_index_len = sizeof(struct ctf_packet_index);
+       hdr.packet_index_len = htobe32(sizeof(struct ctf_packet_index));
 
        size_ret = lttng_write(fd, &hdr, sizeof(hdr));
        if (size_ret < sizeof(hdr)) {
@@ -100,14 +102,19 @@ ssize_t index_write(int fd, struct ctf_packet_index *index, size_t len)
 {
        ssize_t ret;
 
-       assert(fd >= 0);
        assert(index);
 
+       if (fd < 0) {
+               ret = -EINVAL;
+               goto error;
+       }
+
        ret = lttng_write(fd, index, len);
        if (ret < len) {
                PERROR("writing index file");
        }
 
+error:
        return ret;
 }
 
This page took 0.026115 seconds and 4 git commands to generate.