Base64::Base64: Fix exception safety
Found by cppcheck. Signed-off-by: Anders Kaseorg <andersk@mit.edu>
This commit is contained in:
committed by
Keith Winstein
parent
b6f17917f6
commit
14ef590220
@@ -36,6 +36,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include <sys/resource.h>
|
||||
#include <fstream>
|
||||
|
||||
#include "byteorder.h"
|
||||
#include "crypto.h"
|
||||
@@ -121,18 +122,12 @@ Base64Key::Base64Key( string printable_key )
|
||||
|
||||
Base64Key::Base64Key()
|
||||
{
|
||||
FILE *devrandom = fopen( rdev, "r" );
|
||||
if ( devrandom == NULL ) {
|
||||
throw CryptoException( string( rdev ) + ": " + strerror( errno ) );
|
||||
}
|
||||
ifstream devrandom( rdev, ifstream::in | ifstream::binary );
|
||||
|
||||
if ( 1 != fread( key, 16, 1, devrandom ) ) {
|
||||
devrandom.read( reinterpret_cast<char *>( key ), sizeof( key ) );
|
||||
if ( !devrandom ) {
|
||||
throw CryptoException( "Could not read from " + string( rdev ) );
|
||||
}
|
||||
|
||||
if ( 0 != fclose( devrandom ) ) {
|
||||
throw CryptoException( string( rdev ) + ": " + strerror( errno ) );
|
||||
}
|
||||
}
|
||||
|
||||
string Base64Key::printable_key( void ) const
|
||||
|
||||
Reference in New Issue
Block a user