mirror of
https://github.com/martijnvanbrummelen/nwipe.git
synced 2026-02-20 05:32:14 +00:00
Formatting device module.
This commit is contained in:
2
.github/workflows/ci.yml
vendored
2
.github/workflows/ci.yml
vendored
@@ -23,4 +23,4 @@ jobs:
|
|||||||
- name: verifying code style
|
- name: verifying code style
|
||||||
# TODO use check-format when all the code has been formatted.
|
# TODO use check-format when all the code has been formatted.
|
||||||
# run: export PATH=$PATH:/usr/lib/llvm-5.0/bin && make check-format
|
# run: export PATH=$PATH:/usr/lib/llvm-5.0/bin && make check-format
|
||||||
run: export PATH=$PATH:/usr/lib/llvm-5.0/bin && clang-format -i -style=file src/context.h src/nwipe.c src/nwipe.h src/options.c src/options.h src/version.h src/version.c src/method.h src/method.c && git diff-index --quiet HEAD
|
run: export PATH=$PATH:/usr/lib/llvm-5.0/bin && clang-format -i -style=file src/context.h src/device.h src/device.c src/nwipe.c src/nwipe.h src/options.c src/options.h src/version.h src/version.c src/method.h src/method.c && git diff-index --quiet HEAD
|
||||||
|
|||||||
2
.github/workflows/ci_ubuntu-16.04.yml
vendored
2
.github/workflows/ci_ubuntu-16.04.yml
vendored
@@ -23,4 +23,4 @@ jobs:
|
|||||||
- name: verifying code style
|
- name: verifying code style
|
||||||
# TODO use check-format when all the code has been formatted.
|
# TODO use check-format when all the code has been formatted.
|
||||||
# run: export PATH=$PATH:/usr/lib/llvm-5.0/bin && make check-format
|
# run: export PATH=$PATH:/usr/lib/llvm-5.0/bin && make check-format
|
||||||
run: export PATH=$PATH:/usr/lib/llvm-5.0/bin && clang-format -i -style=file src/context.h src/nwipe.c src/nwipe.h src/options.c src/options.h src/version.h src/version.c src/method.h src/method.c && git diff-index --quiet HEAD
|
run: export PATH=$PATH:/usr/lib/llvm-5.0/bin && clang-format -i -style=file src/context.h src/device.h src/device.c src/nwipe.c src/nwipe.h src/options.c src/options.h src/version.h src/version.c src/method.h src/method.c && git diff-index --quiet HEAD
|
||||||
|
|||||||
96
src/device.c
96
src/device.c
@@ -28,7 +28,7 @@
|
|||||||
#include "options.h"
|
#include "options.h"
|
||||||
#include "logging.h"
|
#include "logging.h"
|
||||||
#include <sys/ioctl.h>
|
#include <sys/ioctl.h>
|
||||||
#include <linux/hdreg.h> //Drive specific defs
|
#include <linux/hdreg.h> // Drive specific defs
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
#include <parted/debug.h>
|
#include <parted/debug.h>
|
||||||
|
|
||||||
int check_device( nwipe_context_t*** c, PedDevice* dev, int dcount );
|
int check_device( nwipe_context_t*** c, PedDevice* dev, int dcount );
|
||||||
char *trim(char *str);
|
char* trim( char* str );
|
||||||
|
|
||||||
int nwipe_device_scan( nwipe_context_t*** c )
|
int nwipe_device_scan( nwipe_context_t*** c )
|
||||||
{
|
{
|
||||||
@@ -57,9 +57,9 @@ int nwipe_device_scan( nwipe_context_t*** c )
|
|||||||
|
|
||||||
int dcount = 0;
|
int dcount = 0;
|
||||||
|
|
||||||
while ((dev = ped_device_get_next (dev)))
|
while( ( dev = ped_device_get_next( dev ) ) )
|
||||||
{
|
{
|
||||||
if (check_device(c, dev, dcount))
|
if( check_device( c, dev, dcount ) )
|
||||||
dcount++;
|
dcount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -68,7 +68,7 @@ int nwipe_device_scan( nwipe_context_t*** c )
|
|||||||
|
|
||||||
} /* nwipe_device_scan */
|
} /* nwipe_device_scan */
|
||||||
|
|
||||||
int nwipe_device_get( nwipe_context_t*** c, char **devnamelist, int ndevnames )
|
int nwipe_device_get( nwipe_context_t*** c, char** devnamelist, int ndevnames )
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Gets information about devices
|
* Gets information about devices
|
||||||
@@ -86,16 +86,17 @@ int nwipe_device_get( nwipe_context_t*** c, char **devnamelist, int ndevnames )
|
|||||||
int i;
|
int i;
|
||||||
int dcount = 0;
|
int dcount = 0;
|
||||||
|
|
||||||
for(i = 0; i < ndevnames; i++) {
|
for( i = 0; i < ndevnames; i++ )
|
||||||
|
{
|
||||||
|
|
||||||
dev = ped_device_get(devnamelist[i]);
|
dev = ped_device_get( devnamelist[i] );
|
||||||
if (!dev)
|
if( !dev )
|
||||||
{
|
{
|
||||||
nwipe_log( NWIPE_LOG_WARNING, "Device %s not found", devnamelist[i] );
|
nwipe_log( NWIPE_LOG_WARNING, "Device %s not found", devnamelist[i] );
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (check_device(c, dev, dcount))
|
if( check_device( c, dev, dcount ) )
|
||||||
dcount++;
|
dcount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,10 +113,10 @@ int check_device( nwipe_context_t*** c, PedDevice* dev, int dcount )
|
|||||||
int idx;
|
int idx;
|
||||||
|
|
||||||
/* Check whether this drive is on the excluded drive list ? */
|
/* Check whether this drive is on the excluded drive list ? */
|
||||||
idx=0;
|
idx = 0;
|
||||||
while ( idx < 10 )
|
while( idx < 10 )
|
||||||
{
|
{
|
||||||
if ( !strcmp( dev->path, nwipe_options.exclude[idx++] ))
|
if( !strcmp( dev->path, nwipe_options.exclude[idx++] ) )
|
||||||
{
|
{
|
||||||
nwipe_log( NWIPE_LOG_NOTICE, "Device %s excluded as per command line option -e", dev->path );
|
nwipe_log( NWIPE_LOG_NOTICE, "Device %s excluded as per command line option -e", dev->path );
|
||||||
return 0;
|
return 0;
|
||||||
@@ -123,20 +124,20 @@ int check_device( nwipe_context_t*** c, PedDevice* dev, int dcount )
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Try opening the device to see if it's valid. Close on completion. */
|
/* Try opening the device to see if it's valid. Close on completion. */
|
||||||
if (!ped_device_open(dev))
|
if( !ped_device_open( dev ) )
|
||||||
{
|
{
|
||||||
nwipe_log( NWIPE_LOG_FATAL, "Unable to open device" );
|
nwipe_log( NWIPE_LOG_FATAL, "Unable to open device" );
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
ped_device_close(dev);
|
ped_device_close( dev );
|
||||||
|
|
||||||
/* New device, reallocate memory for additional struct pointer */
|
/* New device, reallocate memory for additional struct pointer */
|
||||||
*c = realloc (*c, (dcount+1) * sizeof(nwipe_context_t *));
|
*c = realloc( *c, ( dcount + 1 ) * sizeof( nwipe_context_t* ) );
|
||||||
|
|
||||||
next_device = malloc (sizeof(nwipe_context_t));
|
next_device = malloc( sizeof( nwipe_context_t ) );
|
||||||
|
|
||||||
/* Check the allocation. */
|
/* Check the allocation. */
|
||||||
if( ! next_device )
|
if( !next_device )
|
||||||
{
|
{
|
||||||
nwipe_perror( errno, __FUNCTION__, "malloc" );
|
nwipe_perror( errno, __FUNCTION__, "malloc" );
|
||||||
nwipe_log( NWIPE_LOG_FATAL, "Unable to create the array of enumeration contexts." );
|
nwipe_log( NWIPE_LOG_FATAL, "Unable to create the array of enumeration contexts." );
|
||||||
@@ -144,43 +145,52 @@ int check_device( nwipe_context_t*** c, PedDevice* dev, int dcount )
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Zero the allocation. */
|
/* Zero the allocation. */
|
||||||
memset( next_device , 0, sizeof( nwipe_context_t ) );
|
memset( next_device, 0, sizeof( nwipe_context_t ) );
|
||||||
|
|
||||||
/* Get device information */
|
/* Get device information */
|
||||||
next_device->label = dev->model;
|
next_device->label = dev->model;
|
||||||
next_device->device_name = dev->path;
|
next_device->device_name = dev->path;
|
||||||
next_device->device_size = dev->length * dev->sector_size;
|
next_device->device_size = dev->length * dev->sector_size;
|
||||||
next_device->device_size_text = ped_unit_format_byte(dev, dev->length * dev->sector_size);
|
next_device->device_size_text = ped_unit_format_byte( dev, dev->length * dev->sector_size );
|
||||||
next_device->result = -2;
|
next_device->result = -2;
|
||||||
|
|
||||||
/* Attempt to get serial number of device. */
|
/* Attempt to get serial number of device. */
|
||||||
if ( (fd = open ( next_device->device_name = dev->path, O_RDONLY)) == ERR )
|
if( ( fd = open( next_device->device_name = dev->path, O_RDONLY ) ) == ERR )
|
||||||
{
|
{
|
||||||
nwipe_log( NWIPE_LOG_WARNING, "Unable to open device %s to obtain serial number", next_device->device_name );
|
nwipe_log( NWIPE_LOG_WARNING, "Unable to open device %s to obtain serial number", next_device->device_name );
|
||||||
}
|
}
|
||||||
/* We don't check the ioctl return status because there are plenty of situations where a serial number may not be
|
|
||||||
|
/*
|
||||||
|
* We don't check the ioctl return status because there are plenty of situations where a serial number may not be
|
||||||
* returned by ioctl such as USB drives, logical volumes, encryted volumes, so the log file would have multiple
|
* returned by ioctl such as USB drives, logical volumes, encryted volumes, so the log file would have multiple
|
||||||
* benign ioctl errors reported which isn't necessarily a problem.
|
* benign ioctl errors reported which isn't necessarily a problem.
|
||||||
*/
|
*/
|
||||||
ioctl(fd, HDIO_GET_IDENTITY, &next_device->identity);
|
ioctl( fd, HDIO_GET_IDENTITY, &next_device->identity );
|
||||||
close( fd );
|
close( fd );
|
||||||
|
|
||||||
for (idx=0; idx<20; idx++) next_device->serial_no[idx]=next_device->identity.serial_no[idx];
|
for( idx = 0; idx < 20; idx++ )
|
||||||
|
next_device->serial_no[idx] = next_device->identity.serial_no[idx];
|
||||||
|
|
||||||
next_device->serial_no[20]=0; /* terminate the string */
|
next_device->serial_no[20] = 0; /* terminate the string */
|
||||||
trim ( (char*) next_device->serial_no ); /* Remove leading/training whitespace from serial number and left justify */
|
trim( (char*) next_device->serial_no ); /* Remove leading/training whitespace from serial number and left justify */
|
||||||
|
|
||||||
nwipe_log( NWIPE_LOG_INFO,"Found drive model=\"%s\", device path=\"%s\", size=\"%s\", serial number=\"%s\"", next_device->label, next_device->device_name, next_device->device_size_text, next_device->serial_no);
|
nwipe_log( NWIPE_LOG_INFO,
|
||||||
|
"Found drive model=\"%s\", device path=\"%s\", size=\"%s\", serial number=\"%s\"",
|
||||||
|
next_device->label,
|
||||||
|
next_device->device_name,
|
||||||
|
next_device->device_size_text,
|
||||||
|
next_device->serial_no );
|
||||||
|
|
||||||
(*c)[dcount] = next_device;
|
( *c )[dcount] = next_device;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Remove leading/training whitespace from a string and left justify result */
|
/* Remove leading/training whitespace from a string and left justify result */
|
||||||
char *trim(char *str)
|
char* trim( char* str )
|
||||||
{
|
{
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
char *frontp = str;
|
char* frontp = str;
|
||||||
char *endp = NULL;
|
char* endp = NULL;
|
||||||
|
|
||||||
if( str == NULL )
|
if( str == NULL )
|
||||||
{
|
{
|
||||||
@@ -190,32 +200,40 @@ char *trim(char *str)
|
|||||||
{
|
{
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
len = strlen(str);
|
len = strlen( str );
|
||||||
endp = str + len;
|
endp = str + len;
|
||||||
|
|
||||||
/* Move the front and back pointers to address the first non-whitespace
|
/*
|
||||||
|
* Move the front and back pointers to address the first non-whitespace
|
||||||
* characters from each end.
|
* characters from each end.
|
||||||
*/
|
*/
|
||||||
while( isspace((unsigned char) *frontp) ) { ++frontp; }
|
while( isspace( (unsigned char) *frontp ) )
|
||||||
|
{
|
||||||
|
++frontp;
|
||||||
|
}
|
||||||
if( endp != frontp )
|
if( endp != frontp )
|
||||||
{
|
{
|
||||||
while( isspace((unsigned char) *(--endp)) && endp != frontp ) {}
|
while( isspace( (unsigned char) *( --endp ) ) && endp != frontp )
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if( str + len - 1 != endp )
|
if( str + len - 1 != endp )
|
||||||
*(endp + 1) = '\0';
|
*( endp + 1 ) = '\0';
|
||||||
else if( frontp != str && endp == frontp )
|
else if( frontp != str && endp == frontp )
|
||||||
*str = '\0';
|
*str = '\0';
|
||||||
/* Shift the string so that it starts at str so that if it's dynamically
|
/*
|
||||||
|
* Shift the string so that it starts at str so that if it's dynamically
|
||||||
* allocated, we can still free it on the returned pointer. Note the reuse
|
* allocated, we can still free it on the returned pointer. Note the reuse
|
||||||
* of endp to mean the front of the string buffer now.
|
* of endp to mean the front of the string buffer now.
|
||||||
*/
|
*/
|
||||||
endp = str;
|
endp = str;
|
||||||
if( frontp != str )
|
if( frontp != str )
|
||||||
{
|
{
|
||||||
while( *frontp ) { *endp++ = *frontp++; }
|
while( *frontp )
|
||||||
|
{
|
||||||
|
*endp++ = *frontp++;
|
||||||
|
}
|
||||||
*endp = '\0';
|
*endp = '\0';
|
||||||
}
|
}
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* eof */
|
|
||||||
|
|||||||
@@ -20,14 +20,11 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#ifndef DEVICE_H_
|
#ifndef DEVICE_H_
|
||||||
#define DEVICE_H_
|
#define DEVICE_H_
|
||||||
|
|
||||||
void nwipe_device_identify( nwipe_context_t* c ); /* Get hardware information about the device. */
|
void nwipe_device_identify( nwipe_context_t* c ); // Get hardware information about the device.
|
||||||
int nwipe_device_scan( nwipe_context_t*** c ); /* Find devices that we can wipe. */
|
int nwipe_device_scan( nwipe_context_t*** c ); // Find devices that we can wipe.
|
||||||
int nwipe_device_get( nwipe_context_t*** c, char **devnamelist, int ndevnames ); /* Get info about devices to wipe */
|
int nwipe_device_get( nwipe_context_t*** c, char** devnamelist, int ndevnames ); // Get info about devices to wipe.
|
||||||
|
|
||||||
#endif /* DEVICE_H_ */
|
#endif /* DEVICE_H_ */
|
||||||
|
|
||||||
/* eof */
|
|
||||||
|
|||||||
Reference in New Issue
Block a user