Commit Graph

119 Commits

Author SHA1 Message Date
louib
d3ddd8d2ac Exit on invalid long option. 2019-11-24 11:14:28 -05:00
louib
5bf579d5b2 Suppress warnings from glibc macros. 2019-11-16 18:25:34 -05:00
PartialVolume
1090ac5d83 Merge branch 'master' into fix_segfault_on_CNTRL-C_at_end_wipe_take3 2019-11-14 01:26:20 +00:00
PartialVolume
4241485e6a Fix segfault on Control-C, after a successful wipe
Symptoms: If you control-C to exit nwipe at the end of a successful
wipe you would get a segmentation fault. If nwipe log data was being
sent to stdout rather than to a log file, then you would not see the
log in the terminal windows after nwipe had exited. This patch fixes
those problems by creating a tri-state wipe flag for each wipe
thread. The main thread after having launched the wipe threads
will wait for ALL wipe flags to report that the wipe routine has
completed and the thread has exited. Only at that time does the
main() routine then proceed with joining the threads and waiting
for the join to confirm the thread has indeed exited. This join
is important as the thread will not actually exit until the OS
has flushed the disk buffers. Currently nwipe does not use O_SYNC
where data is sent straight to disk. Therefore it's important
to wait for data to be flushed before exiting nwipe. Part of this
patch is introducing a "please wait .. disks are being flushed"
prior to exiting nwipe otherwise it might look like nwipe had
hung. A disk flush in terms of how long it takes, can be from
instantly to 30 seconds or more, depending on how much system
memory you have, when the last sync occurred and if you have
changed the sync option from it's default. Something else to
note is that when all wipes have finished nwipe displays "Enter
To Exit" on the status line at the bottom of the screen. I
believe typing 'enter' rather than control-c did not produce a
segmentation fault. Irrespective, both methods of exiting nwipe
have been tested and confirmed to now work correctly. Tested
overnight with two drives using multiple wipe methods,
verification and blanking.
2019-11-14 01:07:08 +00:00
PartialVolume
dd3828008d Add notification of cache flush on CNTRL-C exit 2019-11-14 01:07:08 +00:00
louib
a5715eeca4 Add documentation for verify 2019-11-13 18:35:12 -05:00
Legogizmo
94a9437166 Fixed the Error count issue 2019-11-13 14:30:20 -06:00
Legogizmo
a216fa2c24 Added Verify Method
and fixed other bugs.
2019-11-13 10:59:44 -06:00
PartialVolume
f6cf615a12 Fix segfault on Control-C, after a successful wipe
Symptoms: If you control-C to exit nwipe at the end of a successful
wipe you would get a segmentation fault. If nwipe log data was being
sent to stdout rather than to a log file, then you would not see the
log in the terminal windows after nwipe had exited. This patch fixes
those problems by creating a tri-state wipe flag for each wipe
thread. The main thread after having launched the wipe threads
will wait for ALL wipe flags to report that the wipe routine has
completed and the thread has exited. Only at that time does the
main() routine then proceed with joining the threads and waiting
for the join to confirm the thread has indeed exited. This join
is important as the thread will not actually exit until the OS
has flushed the disk buffers. Currently nwipe does not use O_SYNC
where data is sent straight to disk. Therefore it's important
to wait for data to be flushed before exiting nwipe. Part of this
patch is introducing a "please wait .. disks are being flushed"
prior to exiting nwipe otherwise it might look like nwipe had
hung. A disk flush in terms of how long it takes, can be from
instantly to 30 seconds or more, depending on how much system
memory you have, when the last sync occurred and if you have
changed the sync option from it's default. Something else to
note is that when all wipes have finished nwipe displays "Enter
To Exit" on the status line at the bottom of the screen. I
believe typing 'enter' rather than control-c did not produce a
segmentation fault. Irrespective, both methods of exiting nwipe
have been tested and confirmed to now work correctly. Tested
overnight with two drives using multiple wipe methods,
verification and blanking.
2019-11-11 12:34:28 +00:00
PartialVolume
602cdcaa58 Add notification of cache flush on CNTRL-C exit 2019-11-10 11:42:26 +00:00
PartialVolume
53b1c6ba62 Fix order of include files in options.c
After running clang on options.c the includes were reordered. This caused the compilation to fail with multiple errors.
2019-11-08 18:00:24 +00:00
PartialVolume
2a056b7bfa Changed sync from 0 (at end) to every 1000000 blks
Instead of defaulting to only calling fdatasync at the end of a wipe, it now defaults to calling fdatasync every 1000000 blocks. This shows a unresponsive drive far quicker and also allows wipe threads to complete and be cancelled within a couple of seconds if a wipe is aborted with control-c.
2019-11-08 13:18:50 +00:00
Legogizmo
f9f0ec605c Merge branch 'master' into SyncChanges 2019-11-07 14:09:07 -06:00
PartialVolume
2402ca0602 Merge branch 'master' into clang_format 2019-11-07 19:33:32 +00:00
Legogizmo
7db0bd733e Merge branch 'master' into SyncChanges 2019-11-07 11:22:43 -06:00
PartialVolume
5199fb1793 Fix wipe status saying Success when it never even started.
Capitalise success and failure messages in GUI and log to make them stand out
2019-11-06 20:03:39 +00:00
PartialVolume
f6c1cab28a Have nwipe continue with following devices even if one fails 2019-11-06 14:13:33 +00:00
PartialVolume
d04ae940b6 Limit help text line length to 80 characters
1. When running nwipe in a 80x24 terminal such as ALT-F2 or shredos the line length needs to limited to 80 characters otherwise the text looks misaligned.
2. Added a line between each option to make it more legible.
2019-11-05 22:56:58 +00:00
PartialVolume
766d8020c6 Fix error reporting when accessing dmidecode.
This fix allows nwipe to log an error, specifically the exit code of dmidecode if the exit code
is not 0.

For instance if dmidecode is not installed on a system, then dmidecode reports the following
[2019/11/04 22:12:50] nwipe: info: nwipe_log_sysinfo: dmidecode failed, "dmidecode -s bios-version" exit status = 127

nwipe does not abort on this error but does log the error and continue.
2019-11-04 22:39:20 +00:00
louib
76f097c272 First clang-format file version. 2019-11-03 11:38:41 -05:00
PartialVolume
661785294c Merge pull request #109 from louib/documentation
Fix typos in README and comments.
2019-11-02 22:51:07 +00:00
louib
7b1a5b98a7 Fix typos in README and comments. 2019-11-02 18:33:36 -04:00
Legogizmo
e1475d70ff Update context.h 2019-10-21 11:21:15 -05:00
Legogizmo
a75c29f973 Changed how often fdatasyncs occur.
Changed what the sync option does.
Stopped nwipe from changing the disk blocksize.
Added periodic fdatasyncs within the write loops in pass.c
2019-10-21 11:16:19 -05:00
Martijn van Brummelen
37dfb1a2b6 new release 0.26 2019-09-04 08:51:37 +02:00
Martijn van Brummelen
d2a66e0047 Merge pull request #99 from PartialVolume/log_system_info
Log system's hardware as described in the system BIOS according to th…
2019-09-04 08:18:47 +02:00
Martijn van Brummelen
11ed6b1472 Merge pull request #71 from PartialVolume/exclude-drive-181116
Enhancement: Add exclude drive option
2019-09-04 08:18:32 +02:00
PartialVolume
0fec3a1213 Log system's hardware as described in the system BIOS according to the SMBIOS/DMI standard.
Uses dmidecode with search keywords arguments. dmidecode -s to see available keywords.
2019-08-31 09:55:08 +01:00
Martijn van Brummelen
00469644d8 Merge pull request #89 from PartialVolume/Fix_segfault_that_shows_up_in_Fedora32bit_on_exit
Fix segfault on immediate CNTRL-C exit, shows in Fedora32 bit
2018-11-27 10:08:09 +01:00
Nick Law
c58ab04ff6 Update Fedora workaround 2018-11-25 23:55:11 +00:00
Nick Law
bb91f093a3 Fix segfault on immediate CNTRL-C exit, shows in Fedora32 bit 2018-11-25 21:53:21 +00:00
Martijn van Brummelen
025a02e87c Merge pull request #86 from PartialVolume/netinet_header_removal
Use stdint.h, ncurses.h and panel.h instead of netinet/in.h
2018-11-25 20:53:24 +01:00
Martijn van Brummelen
68cad1b640 Merge pull request #84 from PartialVolume/va_list_ap_was_opened_but_not_closed_by_va_end
Close va_list 'ap' using (va_end( ap ) on failures
2018-11-25 20:52:47 +01:00
Nick Law
cd3716f260 Use stdint.h, ncurses.h and panel.h instead of netinet/in.h 2018-11-24 23:32:20 +00:00
Nick Law
43172a9741 Close va_list 'ap' using (va_end( ap ) on failures 2018-11-24 13:29:11 +00:00
Nick Law
10221fb2a9 (void) unused wy, to silence compiler warning 2018-11-23 21:09:24 +00:00
Nick Law
6b350a2348 (void) unused variables in func.nwipe_isaac_read() 2018-11-23 17:13:14 +00:00
Nick Law
00e9350dd6 Put Function prototypes inside #ifndef/#define/#endif macro guard 2018-11-23 12:56:20 +00:00
Nick Law
af1b470456 De-allocate memory used by the log functions 2018-11-22 20:33:47 +00:00
Nick Law
5f712f3b0c Fix log message buffer overflow, reduce memory requirements. 2018-11-22 02:01:11 +00:00
Nick Law
528bb9fd6a Malloc return status not checked in nwipe_log() 2018-11-21 17:14:29 +00:00
Nick Law
f20e7c6b74 Common realloc mistake: nulled but not freed 2018-11-21 00:27:12 +00:00
Nick Law
27bb409efa Enhancement: Add exclude drive option 2018-11-20 16:03:32 +00:00
Martijn van Brummelen
cfd75a918c Merge pull request #68 from PartialVolume/Fixes_implicit_declaration_of_function_fileno
Fixes implicit declaration of function fileno()
2018-11-20 16:15:33 +01:00
Nick Law
fa0d72cbaf Memory leak:b in pass.c 2018-11-20 14:14:29 +00:00
Nick Law
42a114abc0 Fixes implicit declaration of function fileno() 2018-11-19 23:38:12 +00:00
Martijn van Brummelen
58d4733273 Merge pull request #65 from PartialVolume/Fixes-uninitialized-variable-warning
Fix uninitialized variable 'keystroke' in nwipe_gui_verify()
2018-11-17 11:23:03 +01:00
Nick Law
157797c1ca Fixes uninitialized variable 'keystroke' in nwipe_gui_prng 2018-11-16 22:35:52 +00:00
Nick Law
396896e16c Fix uninitialized variable 'keystroke' in nwipe_gui_verify() 2018-11-16 22:16:17 +00:00
Martijn van Brummelen
5cb6003fc0 Fixes spurious character at the end of serial no string. 2018-11-16 22:35:32 +01:00