[gparted] Fix sscanf modifier for long long (#768239)



commit 25209904a9cd368665cb4fbd8dc94ae7dd37f4de
Author: Natanael Copa <ncopa alpinelinux org>
Date:   Thu Jun 30 12:56:10 2016 +0200

    Fix sscanf modifier for long long (#768239)
    
    POSIX says that %lld is the modifier for long long.
    http://pubs.opengroup.org/onlinepubs/9699919799/functions/fscanf.html
    
    This fixes wrong sizes with musl libc.
    
    Bug 768239 - sizes are wrong with musl libc due to use of non-standard
                 sscanf "%Ld" modifier

 src/ext2.cc       |   10 +++++-----
 src/fat16.cc      |    8 ++++----
 src/jfs.cc        |    6 +++---
 src/linux_swap.cc |    2 +-
 src/nilfs2.cc     |    6 +++---
 src/ntfs.cc       |    6 +++---
 src/reiser4.cc    |    6 +++---
 src/reiserfs.cc   |    6 +++---
 src/xfs.cc        |    6 +++---
 9 files changed, 28 insertions(+), 28 deletions(-)
---
diff --git a/src/ext2.cc b/src/ext2.cc
index dfb9653..8472d74 100644
--- a/src/ext2.cc
+++ b/src/ext2.cc
@@ -179,12 +179,12 @@ void ext2::set_used_sectors( Partition & partition )
        {
                Glib::ustring::size_type index = output.find( "Block count:" );
                if ( index >= output .length() ||
-                    sscanf( output.substr( index ) .c_str(), "Block count: %Ld", &T ) != 1 )
+                    sscanf( output.substr( index ).c_str(), "Block count: %lld", &T ) != 1 )
                        T = -1 ;
 
                index = output .find( "Block size:" ) ;
                if ( index >= output.length() || 
-                    sscanf( output.substr( index ) .c_str(), "Block size: %Ld", &S ) != 1 )  
+                    sscanf( output.substr( index ).c_str(), "Block size: %lld", &S ) != 1 )
                        S = -1 ;
 
                if ( T > -1 && S > -1 )
@@ -207,7 +207,7 @@ void ext2::set_used_sectors( Partition & partition )
                {
                        index = output .find( "Free blocks:" ) ;
                        if ( index >= output .length() ||
-                            sscanf( output.substr( index ) .c_str(), "Free blocks: %Ld", &N ) != 1 )
+                            sscanf( output.substr( index ).c_str(), "Free blocks: %lld", &N ) != 1 )
                                N = -1 ;
 
                        if ( N > -1 && S > -1 )
@@ -382,7 +382,7 @@ void ext2::create_progress( OperationDetail *operationdetail )
        Glib::ustring line = Utils::last_line( output );
        // Text progress on the LAST LINE looks like "Writing inode tables:  105/1600"
        long long progress, target;
-       if ( sscanf( line.c_str(), "Writing inode tables: %Ld/%Ld", &progress, &target ) == 2 )
+       if ( sscanf( line.c_str(), "Writing inode tables: %lld/%lld", &progress, &target ) == 2 )
        {
                operationdetail->run_progressbar( (double)progress, (double)target );
        }
@@ -422,7 +422,7 @@ void ext2::copy_progress( OperationDetail *operationdetail )
        Glib::ustring line = Utils::last_line( error );
        // Text progress on the LAST LINE of STDERR looks like "Copying 146483 / 258033 blocks ..."
        long long progress, target;
-       if ( sscanf( line.c_str(), "Copying %Ld / %Ld blocks", &progress, &target ) == 2 )
+       if ( sscanf( line.c_str(), "Copying %lld / %lld blocks", &progress, &target ) == 2 )
        {
                operationdetail->run_progressbar( (double)(progress * fs_block_size),
                                                  (double)(target * fs_block_size),
diff --git a/src/fat16.cc b/src/fat16.cc
index fe38898..8f116f0 100644
--- a/src/fat16.cc
+++ b/src/fat16.cc
@@ -137,12 +137,12 @@ void fat16::set_used_sectors( Partition & partition )
        {
                //total file system size in logical sectors
                Glib::ustring::size_type index = output.rfind( "\n", output.find( "sectors total" ) ) + 1;
-               if ( index >= output .length() || sscanf( output .substr( index ) .c_str(), "%Ld", &T ) != 1 )
+               if ( index >= output.length() || sscanf( output.substr( index ).c_str(), "%lld", &T ) != 1 )
                        T = -1 ;
 
                //bytes per logical sector
                index = output .rfind( "\n", output .find( "bytes per logical sector" ) ) +1 ;
-               if ( index >= output .length() || sscanf( output .substr( index ) .c_str(), "%Ld", &S ) != 1 )
+               if ( index >= output.length() || sscanf( output.substr( index ).c_str(), "%lld", &S ) != 1 )
                        S = -1 ;
 
                if ( T > -1 && S > -1 )
@@ -150,14 +150,14 @@ void fat16::set_used_sectors( Partition & partition )
 
                //free clusters
                index = output .find( ",", output .find( partition .get_path() ) + partition .get_path() 
.length() ) +1 ;
-               if ( index < output .length() && sscanf( output .substr( index ) .c_str(), "%Ld/%Ld", &S, &N 
) == 2 ) 
+               if ( index < output.length() && sscanf( output.substr( index ).c_str(), "%lld/%lld", &S, &N ) 
== 2 )
                        N -= S ;
                else
                        N = -1 ;
 
                //bytes per cluster
                index = output .rfind( "\n", output .find( "bytes per cluster" ) ) +1 ;
-               if ( index >= output .length() || sscanf( output .substr( index ) .c_str(), "%Ld", &S ) != 1 )
+               if ( index >= output.length() || sscanf( output.substr( index ).c_str(), "%lld", &S ) != 1 )
                        S = -1 ;
        
                if ( N > -1 && S > -1 )
diff --git a/src/jfs.cc b/src/jfs.cc
index 210406b..12d592d 100644
--- a/src/jfs.cc
+++ b/src/jfs.cc
@@ -81,19 +81,19 @@ void jfs::set_used_sectors( Partition & partition )
                //blocksize
                Glib::ustring::size_type index = output.find( "Block Size:" );
                if ( index >= output .length() || 
-                    sscanf( output .substr( index ) .c_str(), "Block Size: %Ld", &S ) != 1 ) 
+                    sscanf( output.substr( index ).c_str(), "Block Size: %lld", &S ) != 1 )
                        S = -1 ;
 
                //total blocks
                index = output .find( "dn_mapsize:" ) ;
                if ( index >= output .length() ||
-                    sscanf( output .substr( index ) .c_str(), "dn_mapsize: %Lx", &T ) != 1 )
+                    sscanf( output.substr( index ).c_str(), "dn_mapsize: %llx", &T ) != 1 )
                        T = -1 ;
 
                //free blocks
                index = output .find( "dn_nfree:" ) ;
                if ( index >= output .length() || 
-                    sscanf( output .substr( index ) .c_str(), "dn_nfree: %Lx", &N ) != 1 ) 
+                    sscanf( output.substr( index ).c_str(), "dn_nfree: %llx", &N ) != 1 )
                        N = -1 ;
 
                if ( T > -1 && N > -1 && S > -1 )
diff --git a/src/linux_swap.cc b/src/linux_swap.cc
index f711dc8..9c513ff 100644
--- a/src/linux_swap.cc
+++ b/src/linux_swap.cc
@@ -85,7 +85,7 @@ void linux_swap::set_used_sectors( Partition & partition )
                        {
                                if ( line .substr( 0, path_len ) == path )
                                {
-                                       sscanf( line.substr( path_len ).c_str(), " %*s %*d %Ld", &N );
+                                       sscanf( line.substr( path_len ).c_str(), " %*s %*d %lld", &N );
                                        break ;
                                }
                        }
diff --git a/src/nilfs2.cc b/src/nilfs2.cc
index ec84bf9..a98c831 100644
--- a/src/nilfs2.cc
+++ b/src/nilfs2.cc
@@ -79,20 +79,20 @@ void nilfs2::set_used_sectors( Partition & partition )
                //File system size in bytes
                Glib::ustring::size_type index = output .find( "Device size:" ) ;
                if (   index == Glib::ustring::npos
-                   || sscanf( output.substr( index ) .c_str(), "Device size: %Ld", &T ) != 1
+                   || sscanf( output.substr( index ).c_str(), "Device size: %lld", &T ) != 1
                   )
                        T = -1 ;
 
                //Free space in blocks
                index = output .find( "Free blocks count:" ) ;
                if (   index == Glib::ustring::npos
-                   || sscanf( output.substr( index ) .c_str(), "Free blocks count: %Ld", &N ) != 1
+                   || sscanf( output.substr( index ).c_str(), "Free blocks count: %lld", &N ) != 1
                   )
                        N = -1 ;
 
                index = output .find( "Block size:" ) ;
                if (   index == Glib::ustring::npos
-                   || sscanf( output.substr( index ) .c_str(), "Block size: %Ld", &S ) != 1
+                   || sscanf( output.substr( index ).c_str(), "Block size: %lld", &S ) != 1
                   )
                        S = -1 ;
 
diff --git a/src/ntfs.cc b/src/ntfs.cc
index 90031cb..b5024fe 100644
--- a/src/ntfs.cc
+++ b/src/ntfs.cc
@@ -129,12 +129,12 @@ void ntfs::set_used_sectors( Partition & partition )
        {
                Glib::ustring::size_type index = output.find( "Current volume size:" );
                if ( index >= output .length() ||
-                    sscanf( output .substr( index ) .c_str(), "Current volume size: %Ld", &T ) != 1 )
+                    sscanf( output.substr( index ).c_str(), "Current volume size: %lld", &T ) != 1 )
                        T = -1 ;
 
                index = output .find( "resize at" ) ;
                if ( index >= output .length() ||
-                    sscanf( output .substr( index ) .c_str(), "resize at %Ld", &N ) != 1 )
+                    sscanf( output.substr( index ).c_str(), "resize at %lld", &N ) != 1 )
                        N = -1 ;
                //For an absolutely full NTFS, "ntfsresize --info" exits
                //  with status 1 and reports this message instead
@@ -144,7 +144,7 @@ void ntfs::set_used_sectors( Partition & partition )
 
                index = output.find( "Cluster size" );
                if ( index >= output.length() ||
-                    sscanf( output.substr( index ).c_str(), "Cluster size       : %Ld", &S ) != 1 )
+                    sscanf( output.substr( index ).c_str(), "Cluster size       : %lld", &S ) != 1 )
                        S = -1;
 
                if ( T > -1 && N > -1 )
diff --git a/src/reiser4.cc b/src/reiser4.cc
index b588cc4..f8b6328 100644
--- a/src/reiser4.cc
+++ b/src/reiser4.cc
@@ -66,17 +66,17 @@ void reiser4::set_used_sectors( Partition & partition )
        {
                Glib::ustring::size_type index = output.find( "\nblocks:" );
                if ( index >= output .length() ||
-                    sscanf( output.substr( index ) .c_str(), "\nblocks: %Ld", &T ) != 1 )
+                    sscanf( output.substr( index ).c_str(), "\nblocks: %lld", &T ) != 1 )
                        T = -1 ;
 
                index = output .find( "\nfree blocks:" ) ;
                if ( index >= output .length() ||
-                    sscanf( output.substr( index ) .c_str(), "\nfree blocks: %Ld", &N ) != 1 )
+                    sscanf( output.substr( index ).c_str(), "\nfree blocks: %lld", &N ) != 1 )
                        N = -1 ;
 
                index = output .find( "\nblksize:" ) ;
                if ( index >= output.length() ||
-                    sscanf( output.substr( index ) .c_str(), "\nblksize: %Ld", &S ) != 1 )
+                    sscanf( output.substr( index ).c_str(), "\nblksize: %lld", &S ) != 1 )
                        S = -1 ;
 
                if ( T > -1 && N > -1 && S > -1 )
diff --git a/src/reiserfs.cc b/src/reiserfs.cc
index ca493cf..98c95dc 100644
--- a/src/reiserfs.cc
+++ b/src/reiserfs.cc
@@ -83,17 +83,17 @@ void reiserfs::set_used_sectors( Partition & partition )
        {
                Glib::ustring::size_type index = output.find( "Count of blocks on the device:" );
                if ( index >= output .length() ||
-                    sscanf( output .substr( index ) .c_str(), "Count of blocks on the device: %Ld", &T ) != 
1 )
+                    sscanf( output.substr( index ).c_str(), "Count of blocks on the device: %lld", &T ) != 1 
)
                        T = -1 ;
 
                index = output .find( "Blocksize:" ) ;
                if ( index >= output .length() || 
-                    sscanf( output .substr( index ) .c_str(), "Blocksize: %Ld", &S ) != 1 )
+                    sscanf( output.substr( index ).c_str(), "Blocksize: %lld", &S ) != 1 )
                        S = -1 ;
 
                index = output .find( ":", output .find( "Free blocks" ) ) +1 ;
                if ( index >= output .length() ||
-                    sscanf( output .substr( index ) .c_str(), "%Ld", &N ) != 1 )
+                    sscanf( output.substr( index ).c_str(), "%lld", &N ) != 1 )
                        N = -1 ;
 
                if ( T > -1 && N > -1 && S > -1 )
diff --git a/src/xfs.cc b/src/xfs.cc
index d43cf89..dc24f82 100644
--- a/src/xfs.cc
+++ b/src/xfs.cc
@@ -95,19 +95,19 @@ void xfs::set_used_sectors( Partition & partition )
                        true ) )
        {
                //blocksize
-               if ( sscanf( output .c_str(), "blocksize = %Ld", &S ) != 1 )
+               if ( sscanf( output.c_str(), "blocksize = %lld", &S ) != 1 )
                        S = -1 ;
 
                //filesystem blocks
                Glib::ustring::size_type index = output.find( "\ndblocks" );
                if ( index > output .length() ||
-                    sscanf( output .substr( index ) .c_str(), "\ndblocks = %Ld", &T ) != 1 )
+                    sscanf( output.substr( index ).c_str(), "\ndblocks = %lld", &T ) != 1 )
                        T = -1 ;
 
                //free blocks
                index = output .find( "\nfdblocks" ) ;
                if ( index > output .length() ||
-                    sscanf( output .substr( index ) .c_str(), "\nfdblocks = %Ld", &N ) != 1 )
+                    sscanf( output.substr( index ).c_str(), "\nfdblocks = %lld", &N ) != 1 )
                        N = -1 ;
 
                if ( T > -1 && N > -1 && S > -1 )


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]