udf: fix 3 signedness & 1 unitialized variable warnings
PATCH 4/6 udf: fix 3 signedness & 1 unitialized variable warnings
sparse generated:fs/udf/inode.c:324:41: warning: incorrect type in argument 4 (different signedness)fs/udf/inode.c:324:41: expected long *<noident>fs/udf/inode.c:324:41: got unsigned long *<noident>
inode_getblk always set 4th argument to uint32_t value 3rd parameter of map_bh is sector_t (which is unsigned long or u64) so convert phys value to sector_t
fs/udf/inode.c:1818:47: warning: incorrect type in argument 3 (different signedness)fs/udf/inode.c:1818:47: expected int *<noident>fs/udf/inode.c:1818:47: got unsigned int *<noident>fs/udf/inode.c:1826:46: warning: incorrect type in argument 3 (different signedness)fs/udf/inode.c:1826:46: expected int *<noident>fs/udf/inode.c:1826:46: got unsigned int *<noident>
udf_get_filelongad and udf_get_shortad are called always for uint32_t values (struct extent_position->offset), so it's safe to convert offset parameter to uint32_t
gcc warned:fs/udf/inode.c: In function 'udf_get_block':fs/udf/inode.c:299: warning: 'phys' may be used uninitialized in this function initialize it to 0 (if someday someone will break inode_getblk we will catch it immediately)
--- fs/udf/directory.c | 8 ++++---- fs/udf/inode.c | 6 +++--- fs/udf/udfdecl.h | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-)
fs/udf/directory.c +4 -4
@@ -271,7 +271,7 @@ static extent_ad *udf_get_fileextent(void *buffer, int bufsize, int *offset) }#endif -short_ad *udf_get_fileshortad (uint8_t *ptr,int maxoffset,int *offset, +short_ad *udf_get_fileshortad (uint8_t *ptr,int maxoffset,uint32_t *offset,int inc) {short_ad *sa;
@@ -281,7 +281,7 @@ short_ad *udf_get_fileshortad(uint8_t *ptr, int maxoffset, int *offset,return NULL ; } -if ((*offset <0 ) || ((*offset +sizeof (short_ad)) > maxoffset)) +if ((*offset +sizeof (short_ad)) > maxoffset)return NULL ;else if ((sa = (short_ad *)ptr)->extLength ==0 )return NULL ;
@@ -291,7 +291,7 @@ short_ad *udf_get_fileshortad(uint8_t *ptr, int maxoffset, int *offset,return sa; } -long_ad *udf_get_filelongad (uint8_t *ptr,int maxoffset,int *offset,int inc) +long_ad *udf_get_filelongad (uint8_t *ptr,int maxoffset,uint32_t *offset,int inc) {long_ad *la;
@@ -300,7 +300,7 @@ long_ad *udf_get_filelongad(uint8_t *ptr, int maxoffset, int *offset, int inc)return NULL ; } -if ((*offset <0 ) || ((*offset +sizeof (long_ad)) > maxoffset)) +if ((*offset +sizeof (long_ad)) > maxoffset)return NULL ;else if ((la = (long_ad *)ptr)->extLength ==0 )return NULL ;
fs/udf/inode.c +3 -3
@@ -51,7 +51,7 @@ static int udf_update_inode(struct inode *, int);static void udf_fill_inode (struct inode *,struct buffer_head *);static int udf_alloc_i_data (struct inode *inode,size_t size);static struct buffer_head *inode_getblk (struct inode *,sector_t ,int *, -long *,int *); +sector_t *,int *);static int8_t udf_insert_aext (struct inode *,struct extent_position ,kernel_lb_addr ,uint32_t ); static void udf_split_extents(struct inode *, int *, int, int,
@@ -296,7 +296,7 @@ static int udf_get_block(struct inode *inode, sector_t block, {int err, new;struct buffer_head *bh; -unsigned long phys; +sector_t phys =0 ;if (!create) { phys =udf_block_map (inode, block);
@@ -469,7 +469,7 @@ out: }static struct buffer_head *inode_getblk (struct inode *inode,sector_t block, -int *err,long *phys,int *new) +int *err,sector_t *phys,int *new) {static sector_t last_block;struct buffer_head *result =NULL ;
fs/udf/udfdecl.h +2 -2
@@ -185,8 +185,8 @@ extern struct fileIdentDesc *udf_fileident_read(struct inode *, loff_t *, sector_t *);extern struct fileIdentDesc *udf_get_fileident (void *buffer,int bufsize,int *offset); -extern long_ad *udf_get_filelongad (uint8_t *,int ,int *,int ); -extern short_ad *udf_get_fileshortad (uint8_t *,int ,int *,int ); +extern long_ad *udf_get_filelongad (uint8_t *,int ,uint32_t *,int ); +extern short_ad *udf_get_fileshortad (uint8_t *,int ,uint32_t *,int );/* crc.c */ extern uint16_t udf_crc (uint8_t *,uint32_t ,uint16_t );
--
1.5.3.4
Quoted 20 lines
sparse generated:
fs/udf/inode.c:324:41: warning: incorrect type in argument 4 (different signedness)fs/udf/inode.c:324:41: expected long *<noident>fs/udf/inode.c:324:41: got unsigned long *<noident>
inode_getblkalways set 4th argument touint32_tvalue 3rd parameter ofmap_bhissector_t(which is unsigned long or u64) so convert phys value tosector_t
fs/udf/inode.c:1818:47: warning: incorrect type in argument 3 (different signedness)fs/udf/inode.c:1818:47: expected int *<noident>fs/udf/inode.c:1818:47: got unsigned int *<noident>fs/udf/inode.c:1826:46: warning: incorrect type in argument 3 (different signedness)fs/udf/inode.c:1826:46: expected int *<noident>fs/udf/inode.c:1826:46: got unsigned int *<noident>
udf_get_filelongadandudf_get_shortadare called always foruint32_tvalues (structextent_position->offset), so it's safe to convert offset parameter touint32_t
Quoted 7 lines
gcc warned:
fs/udf/inode.c: In function 'udf_get_block':fs/udf/inode.c:299: warning: 'phys' may be used uninitialized in this function initialize it to 0 (if someday someone will breakinode_getblkwe will catch it immediately)Signed-off-by Marcin Slusarz <[email protected]>CC Ben Fennema <[email protected]>
Honza
Quoted 100 lines
--- fs/udf/directory.c | 8 ++++---- fs/udf/inode.c | 6 +++--- fs/udf/udfdecl.h | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-)fs/udf/directory.c +4
-4@@ -271,7 +271,7 @@ static extent_ad *udf_get_fileextent(void *buffer, int bufsize, int *offset) }#endif -short_ad *udf_get_fileshortad (uint8_t *ptr,int maxoffset,int *offset, +short_ad *udf_get_fileshortad (uint8_t *ptr,int maxoffset,uint32_t *offset,int inc) {short_ad *sa;@@ -281,7 +281,7 @@ short_ad *udf_get_fileshortad(uint8_t *ptr, int maxoffset, int *offset,return NULL ; } -if ((*offset <0 ) || ((*offset +sizeof (short_ad)) > maxoffset)) +if ((*offset +sizeof (short_ad)) > maxoffset)return NULL ;else if ((sa = (short_ad *)ptr)->extLength ==0 )return NULL ;@@ -291,7 +291,7 @@ short_ad *udf_get_fileshortad(uint8_t *ptr, int maxoffset, int *offset,return sa; } -long_ad *udf_get_filelongad (uint8_t *ptr,int maxoffset,int *offset,int inc) +long_ad *udf_get_filelongad (uint8_t *ptr,int maxoffset,uint32_t *offset,int inc) {long_ad *la;@@ -300,7 +300,7 @@ long_ad *udf_get_filelongad(uint8_t *ptr, int maxoffset, int *offset, int inc)return NULL ; } -if ((*offset <0 ) || ((*offset +sizeof (long_ad)) > maxoffset)) +if ((*offset +sizeof (long_ad)) > maxoffset)return NULL ;else if ((la = (long_ad *)ptr)->extLength ==0 )return NULL ;fs/udf/inode.c +3
-3@@ -51,7 +51,7 @@ static int udf_update_inode(struct inode *, int);static void udf_fill_inode (struct inode *,struct buffer_head *);static int udf_alloc_i_data (struct inode *inode,size_t size);static struct buffer_head *inode_getblk (struct inode *,sector_t ,int *, -long *,int *); +sector_t *,int *);static int8_t udf_insert_aext (struct inode *,struct extent_position ,kernel_lb_addr ,uint32_t ); static void udf_split_extents(struct inode *, int *, int, int,@@ -296,7 +296,7 @@ static int udf_get_block(struct inode *inode, sector_t block, {int err, new;struct buffer_head *bh; -unsigned long phys; +sector_t phys =0 ;if (!create) { phys =udf_block_map (inode, block);@@ -469,7 +469,7 @@ out: }static struct buffer_head *inode_getblk (struct inode *inode,sector_t block, -int *err,long *phys,int *new) +int *err,sector_t *phys,int *new) {static sector_t last_block;struct buffer_head *result =NULL ;fs/udf/udfdecl.h +2
-3@@ -185,8 +185,8 @@ extern struct fileIdentDesc *udf_fileident_read(struct inode *, loff_t *, sector_t *);extern struct fileIdentDesc *udf_get_fileident (void *buffer,int bufsize,int *offset); -extern long_ad *udf_get_filelongad (uint8_t *,int ,int *,int ); -extern short_ad *udf_get_fileshortad (uint8_t *,int ,int *,int ); +extern long_ad *udf_get_filelongad (uint8_t *,int ,uint32_t *,int ); +extern short_ad *udf_get_fileshortad (uint8_t *,int ,uint32_t *,int );/* crc.c */ extern uint16_t udf_crc (uint8_t *,uint32_t ,uint16_t ); --1.5.3.4
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Signature · 2 lines
Jan Kara <[email protected]> SuSE CR Labs