[gparted] Fix sscanf modifier for long long (#768239)
- From: Mike Fleetwood <mfleetwo src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gparted] Fix sscanf modifier for long long (#768239)
- Date: Fri, 1 Jul 2016 14:37:11 +0000 (UTC)
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]