[gparted] Avoid crashes by ignoring devices with sector size > 512 bytes (#595309)
- From: Curtis Gedak <gedakc src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gparted] Avoid crashes by ignoring devices with sector size > 512 bytes (#595309)
- Date: Sat, 16 Jan 2010 18:46:32 +0000 (UTC)
commit 3dd34af909907577227341437fd33fea0c37cce4
Author: Curtis Gedak <gedakc gmail com>
Date: Sat Jan 16 11:45:29 2010 -0700
Avoid crashes by ignoring devices with sector size > 512 bytes (#595309)
This is not an ideal solution because devices with sector sizes
greater than 512 bytes are silently ignored from a graphical interface
perspective. Only if the user starts gparted from the command line
will the "ignoring device" message be seen.
In my opinion this short term solution of ignoring these devices is
still better than a gparted crash which might also result in data
loss.
A bug report requesting support for devices with sector sizes > 512
bytes has been created.
https://bugzilla.gnome.org/show_bug.cgi?id=607165
Thanks go to Jan Claeys for the initial small patch.
src/GParted_Core.cc | 18 ++++++++++++++----
1 files changed, 14 insertions(+), 4 deletions(-)
---
diff --git a/src/GParted_Core.cc b/src/GParted_Core.cc
index f82aca7..095783d 100644
--- a/src/GParted_Core.cc
+++ b/src/GParted_Core.cc
@@ -1,5 +1,5 @@
/* Copyright (C) 2004 Bart 'plors' Hakvoort
- * Copyright (C) 2008, 2009 Curtis Gedak
+ * Copyright (C) 2008, 2009, 2010 Curtis Gedak
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -246,9 +246,19 @@ void GParted_Core::set_devices( std::vector<Device> & devices )
set_thread_status_message( String::ucompose ( _("Confirming %1"), lp_device ->path ) ) ;
if ( ped_device_open( lp_device ) )
{
- if ( ped_device_read( lp_device, buf, 0, 1 ) )
- device_paths .push_back( lp_device ->path ) ;
-
+ //FIXME: Remove this check when both GParted and libparted
+ // support devices with a logical sector size != 512.
+ if ( lp_device ->sector_size != 512 )
+ {
+ /*TO TRANSLATORS: looks like Ignoring device /dev/sde with logical sector size of 2048 bytes because gparted only supports a size of 512 bytes. */
+ Glib::ustring msg = String::ucompose ( _("Ignoring device %1 with logical sector size of %2 bytes because gparted only supports a size of 512 bytes."), lp_device ->path, lp_device ->sector_size ) ;
+ std::cout << msg << std::endl << std::endl ;
+ }
+ else
+ {
+ if ( ped_device_read( lp_device, buf, 0, 1 ) )
+ device_paths .push_back( lp_device ->path ) ;
+ }
ped_device_close( lp_device ) ;
}
free( buf ) ;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]