From 94adb3aee138118174e34f519ff6ce3e8ece707c Mon Sep 17 00:00:00 2001 From: Tony Breeds Date: Tue, 10 Feb 2009 14:11:23 +1100 Subject: [PATCH] Be explicit in order of evaluation in the reiserfs code MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit GCC Has helpfully pointed out that we're doing some strange things: second/fs_reiserfs.c: In function ‘block_read’: second/fs_reiserfs.c:219: warning: operation on ‘journal_table’ may be undefined second/fs_reiserfs.c:219: warning: operation on ‘journal_table’ may be undefined second/fs_reiserfs.c:219: warning: operation on ‘journal_table’ may be undefined second/fs_reiserfs.c: In function ‘next_key’: second/fs_reiserfs.c:619: warning: operation on ‘depth’ may be undefined Signed-off-by: Tony Breeds --- second/fs_reiserfs.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/second/fs_reiserfs.c b/second/fs_reiserfs.c index b0c3ac0..a312ced 100644 --- a/second/fs_reiserfs.c +++ b/second/fs_reiserfs.c @@ -218,7 +218,7 @@ block_read( __u32 blockNr, __u32 start, __u32 len, char *buffer ) if ( *journal_table != 0xffffffff ) { /* Search for the blockNr in cached journal */ - j_len = le32_to_cpu(*journal_table++); + j_len = le32_to_cpu((*journal_table)++); while ( i++ < j_len ) { if ( le32_to_cpu(*journal_table++) == blockNr ) @@ -618,7 +618,10 @@ next_key( void ) cache = CACHE( depth ); else { - cache = read_tree_node( INFO->blocks[depth], --depth ); + /* Save depth as using it twice as args to read_tree_node() + * has undefined behaviour */ + __u16 d = depth; + cache = read_tree_node( INFO->blocks[d], --depth ); if ( !cache ) return 0; } -- 2.39.2