Pedanitic warning check fixes. Pointer arithmetic, anonymus unions etc
authorgkostka <kostka.grzegorz@gmail.com>
Tue, 20 May 2014 21:34:12 +0000 (21:34 +0000)
committergkostka <kostka.grzegorz@gmail.com>
Tue, 20 May 2014 21:34:12 +0000 (21:34 +0000)
CMakeLists.txt
ext4.h
fs_test/lwext4_client.c
fs_test/lwext4_server.c
lwext4/ext4.c
lwext4/ext4_debug.h
lwext4/ext4_dir.c
lwext4/ext4_dir_idx.c
lwext4/ext4_fs.c
lwext4/ext4_types.h

index 03d69f11c5c708d09636e4b6f1952154deea0539..3068d0a3f05c95d28f26baf8c9766a239e0c7662 100644 (file)
@@ -2,6 +2,7 @@ project(lwext4 C)
 cmake_minimum_required(VERSION 2.8)\r
 \r
 \r
+\r
 #LIBRARY\r
 include_directories(. lwext4)\r
 aux_source_directory(lwext4 LWEXT4_SRC)\r
@@ -20,6 +21,8 @@ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL  bf518)
     #Library size print\r
     add_custom_target(lib_size ALL DEPENDS lwext4 COMMAND ${SIZE} -B liblwext4.a)\r
 else()\r
+    #Warning setup\r
+    set_target_properties(lwext4 PROPERTIES COMPILE_FLAGS "-Wall -Wextra -pedantic -std=gnu99")\r
     #Library size print\r
     add_custom_target(lib_size ALL DEPENDS lwext4 COMMAND size -B liblwext4.a)\r
     #Generic example target\r
diff --git a/ext4.h b/ext4.h
index f4597276b1af51a33f1099a83556d62288ec8658..26ac023ce0bc4a4ac00d1dbd3ea18d9de8dfd6d4 100644 (file)
--- a/ext4.h
+++ b/ext4.h
@@ -137,11 +137,8 @@ enum  {
 typedef struct {\r
     uint32_t inode;\r
     uint16_t entry_length;\r
-    uint8_t  name_length;\r
-    union {\r
-        uint8_t name_length_high;\r
-        uint8_t inode_type;\r
-    };\r
+    uint8_t name_length;\r
+    uint8_t inode_type;\r
     uint8_t name[255];\r
 }ext4_direntry;\r
 \r
index d40253a91d9f16e579d2f1ee6a302c71d56e5005..8939c54be1cefe9ff7cfdde8bb9200aba8a5b2f5 100644 (file)
@@ -101,6 +101,7 @@ static int client_connect(void)
         exit(-1);\r
     }\r
 \r
+    winsock_fini();\r
     return fd;\r
 }\r
 \r
index 53ee5e2fca0955d2ef3513799af03bcf092d6732..00e9196edd6963a308c4739d6affc05e4307e391 100644 (file)
@@ -453,7 +453,7 @@ int _mount_point_stats(char *p)
     rc = ext4_mount_point_stats(mount_point, &stats);\r
 \r
     if(rc != EOK)\r
-        return;\r
+        return rc;\r
 \r
     if(verbose){\r
         printf("\tinodes_count = %d\n", stats.inodes_count);\r
index e6eb7a87c7e5f1f5a2d62ac57b64af8a7b8e64f4..1919667282774ce1b3a18ee157b6b9d106b5b270 100644 (file)
 \r
 /**@brief   Mount point OS dependent lock*/\r
 #define EXT4_MP_LOCK(_m)    \\r
-        do { (_m)->os_locks ? (_m)->os_locks->lock() : 0; }while(0)\r
+        do { if((_m)->os_locks)  (_m)->os_locks->lock(); }while(0)\r
 \r
 /**@brief   Mount point OS dependent unlock*/\r
 #define EXT4_MP_UNLOCK(_m)  \\r
-        do { (_m)->os_locks ? (_m)->os_locks->unlock() : 0; }while(0)\r
+        do { if((_m)->os_locks)  (_m)->os_locks->unlock(); }while(0)\r
 \r
 /**@brief   Mount point descrpitor.*/\r
 struct ext4_mountpoint {\r
index c82579b7e3715e1a83522297a4b13b5ed4d82511..898387550a8a9a9379a885a1b62672211f543fc9 100644 (file)
@@ -92,7 +92,7 @@ uint32_t ext4_dmask_get(void);
 #if CONFIG_DEBUG_PRINTF
 /**@brief   Debug printf.*/
 #define ext4_dprintf(m, ...)    do {                            \
-        (m & ext4_dmask_get()) ? printf(__VA_ARGS__) : (void)0; \
+        if(m & ext4_dmask_get())  printf(__VA_ARGS__);                         \
         fflush(stdout);                                         \
 }while(0)
 #else
index 7c829e35e27a26b507da3af2b26a471350df7bef..acbd0816555aca1c64ee5a9b6229477397e6197d 100644 (file)
@@ -78,7 +78,7 @@ uint16_t ext4_dir_entry_ll_get_name_length(struct ext4_sblock *sb,
 \r
     if ((ext4_get32(sb, rev_level) == 0) &&\r
             (ext4_get32(sb, minor_rev_level) < 5))\r
-        v |= ((uint16_t)de->name_length_high) << 8;\r
+        v |= ((uint16_t)de->in.name_length_high) << 8;\r
 \r
     return v;\r
 }\r
@@ -89,7 +89,7 @@ void ext4_dir_entry_ll_set_name_length(struct ext4_sblock *sb,
 \r
     if ((ext4_get32(sb, rev_level) == 0) &&\r
             (ext4_get32(sb, minor_rev_level) < 5))\r
-        de->name_length_high = len >> 8;\r
+        de->in.name_length_high = len >> 8;\r
 }\r
 \r
 \r
@@ -99,7 +99,7 @@ uint8_t ext4_dir_entry_ll_get_inode_type(struct ext4_sblock *sb,
 {\r
     if ((ext4_get32(sb, rev_level) > 0) ||\r
             (ext4_get32(sb, minor_rev_level) >= 5))\r
-        return de->inode_type;\r
+        return de->in.inode_type;\r
 \r
     return EXT4_DIRECTORY_FILETYPE_UNKNOWN;\r
 }\r
@@ -110,7 +110,7 @@ void ext4_dir_entry_ll_set_inode_type(struct ext4_sblock *sb,
 {\r
     if ((ext4_get32(sb, rev_level) > 0) ||\r
             (ext4_get32(sb, minor_rev_level) >= 5))\r
-        de->inode_type = type;\r
+        de->in.inode_type = type;\r
 }\r
 \r
 /****************************************************************************/\r
@@ -561,7 +561,7 @@ int ext4_dir_try_insert_entry(struct ext4_sblock *sb,
                 /* Cut tail of current entry */\r
                 ext4_dir_entry_ll_set_entry_length(dentry, used_space);\r
                 struct ext4_directory_entry_ll *new_entry =\r
-                        (void *) dentry + used_space;\r
+                        (void *) ((uint8_t *)dentry + used_space);\r
                 ext4_dir_write_entry(sb, new_entry,\r
                     free_space, child, name, name_len);\r
 \r
@@ -571,7 +571,7 @@ int ext4_dir_try_insert_entry(struct ext4_sblock *sb,
         }\r
 \r
         /* Jump to the next entry */\r
-        dentry = (void *) dentry + rec_len;\r
+        dentry = (void *) ((uint8_t *)dentry + rec_len);\r
     }\r
 \r
     /* No free space found for new entry */\r
index 03d13f40341d55926490a08f1d58d954f59151ea..d8faf57d2c152ce73ed7b609828a3b0537c2a093 100644 (file)
@@ -595,7 +595,7 @@ static void ext4_dir_dx_insert_entry(
     uint32_t count = ext4_dir_dx_countlimit_get_count(countlimit);\r
 \r
     struct ext4_directory_dx_entry *start_index = index_block->entries;\r
-    size_t bytes = (void *) (start_index + count) - (void *) (new_index_entry);\r
+    size_t bytes = (uint8_t *) (start_index + count) - (uint8_t *) (new_index_entry);\r
 \r
     memmove(new_index_entry + 1, new_index_entry, bytes);\r
 \r
@@ -625,7 +625,7 @@ static int ext4_dir_dx_split_data(struct ext4_inode_ref *inode_ref,
     uint32_t block_size =\r
             ext4_sb_get_block_size(&inode_ref->fs->sb);\r
 \r
-    void *entry_buffer = malloc(block_size);\r
+    uint8_t *entry_buffer = malloc(block_size);\r
     if (entry_buffer == NULL)\r
         return ENOMEM;\r
 \r
@@ -651,7 +651,7 @@ static int ext4_dir_dx_split_data(struct ext4_inode_ref *inode_ref,
 \r
     /* Load all valid entries to the buffer */\r
     struct ext4_directory_entry_ll *dentry = (void *)old_data_block->data;\r
-    void *entry_buffer_ptr = entry_buffer;\r
+    uint8_t *entry_buffer_ptr = entry_buffer;\r
     while ((void *)dentry < (void *)(old_data_block->data + block_size)) {\r
         /* Read only valid entries */\r
         if (ext4_dir_entry_ll_get_inode(dentry) && dentry->name_length) {\r
@@ -681,8 +681,8 @@ static int ext4_dir_dx_split_data(struct ext4_inode_ref *inode_ref,
             idx++;\r
         }\r
 \r
-        dentry = (void *) dentry +\r
-                ext4_dir_entry_ll_get_entry_length(dentry);\r
+        dentry = (void *)((uint8_t *)dentry +\r
+                ext4_dir_entry_ll_get_entry_length(dentry));\r
     }\r
 \r
     /* Sort all entries */\r
index 4c60fba707b06c4461bcf6f7098569210667c8bd..eef6ddfcad683378115477ea737a42e1cb3d080c 100644 (file)
@@ -513,8 +513,8 @@ static uint16_t ext4_fs_bg_checksum(struct ext4_sblock *sb, uint32_t bgid,
     /* Compute the checksum only if the filesystem supports it */
     if (ext4_sb_check_read_only(sb,
             EXT4_FEATURE_RO_COMPAT_GDT_CSUM)) {
-        void *base = bg;
-        void *checksum = &bg->checksum;
+        uint8_t  *base = (uint8_t  *)bg;
+        uint8_t  *checksum = (uint8_t  *)&bg->checksum;
 
         uint32_t offset = (uint32_t) (checksum - base);
 
index 8d1502476e9f7fde1b5d422a830d16ce09f0f7b1..323023193adafccfd4be63332943d1f60489ebcb 100644 (file)
@@ -403,6 +403,11 @@ struct ext4_inode_ref {
 #define EXT4_DIRECTORY_FILETYPE_SOCK      6
 #define EXT4_DIRECTORY_FILETYPE_SYMLINK   7
 
+union ext4_directory_entry_ll_internal{
+    uint8_t name_length_high;  /* Higher 8 bits of name length */
+    uint8_t inode_type;        /* Type of referenced inode (in rev >= 0.5) */
+} __attribute__ ((packed));
+
 /**
  * Linked list directory entry structure
  */
@@ -411,10 +416,7 @@ struct ext4_directory_entry_ll {
     uint16_t entry_length;  /* Distance to the next directory entry */
     uint8_t name_length;    /* Lower 8 bits of name length */
 
-    union {
-        uint8_t name_length_high;  /* Higher 8 bits of name length */
-        uint8_t inode_type;        /* Type of referenced inode (in rev >= 0.5) */
-    } __attribute__ ((packed));
+    union ext4_directory_entry_ll_internal in;
 
     uint8_t name[EXT4_DIRECTORY_FILENAME_LEN];  /* Entry name */
 } __attribute__((packed)) ;
@@ -462,7 +464,7 @@ struct ext4_directory_dx_entry {
 struct ext4_directory_dx_root {
     struct ext4_directory_dx_dot_entry dots[2];
     struct ext4_directory_dx_root_info info;
-    struct ext4_directory_dx_entry entries[0];
+    struct ext4_directory_dx_entry entries[];
 };
 
 struct ext4_fake_directory_entry {
@@ -474,7 +476,7 @@ struct ext4_fake_directory_entry {
 
 struct ext4_directory_dx_node {
     struct ext4_fake_directory_entry fake;
-    struct ext4_directory_dx_entry entries[0];
+    struct ext4_directory_dx_entry entries[];
 };
 
 struct ext4_directory_dx_block {
@@ -536,10 +538,10 @@ struct ext4_extent_path {
 #define EXT4_EXTENT_MAGIC  0xF30A
 
 #define EXT4_EXTENT_FIRST(header) \
-        ((struct ext4_extent *) (((void *) (header)) + sizeof(struct ext4_extent_header)))
+        ((struct ext4_extent *) (((char *) (header)) + sizeof(struct ext4_extent_header)))
 
 #define EXT4_EXTENT_FIRST_INDEX(header) \
-        ((struct ext4_extent_index *) (((void *) (header)) + sizeof(struct ext4_extent_header)))
+        ((struct ext4_extent_index *) (((char *) (header)) + sizeof(struct ext4_extent_header)))
 
 
 /* EXT3 HTree directory indexing */
@@ -550,7 +552,7 @@ struct ext4_extent_path {
 #define EXT2_HTREE_HALF_MD4_UNSIGNED        4
 #define EXT2_HTREE_TEA_UNSIGNED             5
 
-#define EXT2_HTREE_EOF                      0x7FFFFFFF
+#define EXT2_HTREE_EOF                      0x7FFFFFFFUL
 
 
 struct ext4_hash_info {