Author: fehr Date: Thu Aug 4 17:31:43 2011 New Revision: 65226 URL: http://svn.opensuse.org/viewcvs/yast?rev=65226&view=rev Log: avoid crash when btrfs signature is on disk device (bnc#710043) Modified: branches/SuSE-Code-11-SP2-Branch/storage/libstorage/src/Btrfs.cc branches/SuSE-Code-11-SP2-Branch/storage/libstorage/src/BtrfsCo.cc branches/SuSE-Code-11-SP2-Branch/storage/libstorage/src/StorageTypes.cc branches/SuSE-Code-11-SP2-Branch/storage/libstorage/src/StorageTypes.h branches/SuSE-Code-11-SP2-Branch/storage/libstorage/src/Volume.cc branches/SuSE-Code-11-SP2-Branch/storage/package/yast2-storage.changes Modified: branches/SuSE-Code-11-SP2-Branch/storage/libstorage/src/Btrfs.cc URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/storage/libstorage/src/Btrfs.cc?rev=65226&r1=65225&r2=65226&view=diff ============================================================================== --- branches/SuSE-Code-11-SP2-Branch/storage/libstorage/src/Btrfs.cc (original) +++ branches/SuSE-Code-11-SP2-Branch/storage/libstorage/src/Btrfs.cc Thu Aug 4 17:31:43 2011 @@ -45,6 +45,7 @@ { y2mil("constructed btrfs vol size:" << sz << " devs:" << devs ); y2mil("constructed btrfs vol from:" << v ); + setFs(BTRFS); changeMountBy(MOUNTBY_UUID); setSize( sz ); } Modified: branches/SuSE-Code-11-SP2-Branch/storage/libstorage/src/BtrfsCo.cc URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/storage/libstorage/src/BtrfsCo.cc?rev=65226&r1=65225&r2=65226&view=diff ============================================================================== --- branches/SuSE-Code-11-SP2-Branch/storage/libstorage/src/BtrfsCo.cc (original) +++ branches/SuSE-Code-11-SP2-Branch/storage/libstorage/src/BtrfsCo.cc Thu Aug 4 17:31:43 2011 @@ -115,10 +115,14 @@ else devs.push_back( *i ); } - Btrfs* b = new Btrfs( *this, *cv, sum_size, devs ); - y2mil( "alt_names:" << an ); - b->setAltNames( an ); - vols.push_back(b); + y2mil( "cv:" << cv << " sum:" << sum_size << " devs:" << devs ); + if( cv!=NULL ) + { + Btrfs* b = new Btrfs( *this, *cv, sum_size, devs ); + y2mil( "alt_names:" << an ); + b->setAltNames( an ); + vols.push_back(b); + } } else y2war( "uuid " << *i << " not found" ); Modified: branches/SuSE-Code-11-SP2-Branch/storage/libstorage/src/StorageTypes.cc URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/storage/libstorage/src/StorageTypes.cc?rev=65226&r1=65225&r2=65226&view=diff ============================================================================== --- branches/SuSE-Code-11-SP2-Branch/storage/libstorage/src/StorageTypes.cc (original) +++ branches/SuSE-Code-11-SP2-Branch/storage/libstorage/src/StorageTypes.cc Thu Aug 4 17:31:43 2011 @@ -171,4 +171,14 @@ << " logical:" << a.logicalSlot << " poss:" << a.logicalPossible; return s; }; + +std::ostream& operator<<(std::ostream& s, const FsCapabilities& a) + { + s << "ext:" << a.isExtendable << " extm:" << a.isExtendableWhileMounted + << " red:" << a.isReduceable << " redm:" << a.isReduceableWhileMounted + << " uuid:" << a.supportsUuid << " label:" << a.supportsLabel + << " lwm:" << a.labelWhileMounted << " ll:" << a.labelLength + << " minfsk:" << a.minimalFsSizeK; + return s; + }; } Modified: branches/SuSE-Code-11-SP2-Branch/storage/libstorage/src/StorageTypes.h URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/storage/libstorage/src/StorageTypes.h?rev=65226&r1=65225&r2=65226&view=diff ============================================================================== --- branches/SuSE-Code-11-SP2-Branch/storage/libstorage/src/StorageTypes.h (original) +++ branches/SuSE-Code-11-SP2-Branch/storage/libstorage/src/StorageTypes.h Thu Aug 4 17:31:43 2011 @@ -92,6 +92,7 @@ }; std::ostream& operator<<(std::ostream& s, const PartitionSlotInfo& a); +std::ostream& operator<<(std::ostream& s, const FsCapabilities& a); enum CommitStage { DECREASE, INCREASE, FORMAT, MOUNT, SUBVOL }; Modified: branches/SuSE-Code-11-SP2-Branch/storage/libstorage/src/Volume.cc URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/storage/libstorage/src/Volume.cc?rev=65226&r1=65225&r2=65226&view=diff ============================================================================== --- branches/SuSE-Code-11-SP2-Branch/storage/libstorage/src/Volume.cc (original) +++ branches/SuSE-Code-11-SP2-Branch/storage/libstorage/src/Volume.cc Thu Aug 4 17:31:43 2011 @@ -668,6 +668,7 @@ (mby==MOUNTBY_LABEL && !caps.supportsLabel) || (mby==MOUNTBY_UUID && !caps.supportsUuid)) { + y2mil( "fs:" << toString(fs) << " caps:" << caps ); ret = VOLUME_MOUNTBY_UNSUPPORTED_BY_FS; } } Modified: branches/SuSE-Code-11-SP2-Branch/storage/package/yast2-storage.changes URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP2-Branch/storage/package/yast2-storage.changes?rev=65226&r1=65225&r2=65226&view=diff ============================================================================== --- branches/SuSE-Code-11-SP2-Branch/storage/package/yast2-storage.changes (original) +++ branches/SuSE-Code-11-SP2-Branch/storage/package/yast2-storage.changes Thu Aug 4 17:31:43 2011 @@ -1,4 +1,9 @@ ------------------------------------------------------------------- +Thu Aug 4 17:30:06 CEST 2011 - fehr@suse.de + +- avoid crash when btrfs signature is on disk device (bnc#710043) + +------------------------------------------------------------------- Tue Aug 2 14:03:30 CEST 2011 - fehr@suse.de - call waitForDevice in checkDevice to work around possible -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org