mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-19 00:13:33 +00:00
sysutils/gdisk: fix memory corruption while using sgdisk command
while parsing arguments, the device (last argument) variable is reset before being used.
This commit is contained in:
parent
b1c6bdab1b
commit
a8178eb726
@ -1,6 +1,6 @@
|
||||
PORTNAME= gdisk
|
||||
PORTVERSION= 1.0.9
|
||||
PORTREVISION= 1
|
||||
PORTREVISION= 2
|
||||
CATEGORIES= sysutils
|
||||
MASTER_SITES= SF/gptfdisk/gptfdisk/${PORTVERSION}
|
||||
DISTNAME= gptfdisk-${PORTVERSION}
|
||||
|
33
sysutils/gdisk/files/patch-gptcl.cc
Normal file
33
sysutils/gdisk/files/patch-gptcl.cc
Normal file
@ -0,0 +1,33 @@
|
||||
--- gptcl.cc.orig 2022-11-22 09:31:13 UTC
|
||||
+++ gptcl.cc
|
||||
@@ -71,7 +71,7 @@ int GPTDataCL::DoOptions(int argc, char* argv[]) {
|
||||
uint64_t low, high, startSector, endSector, sSize, mainTableLBA;
|
||||
uint64_t temp; // temporary variable; free to use in any case
|
||||
char *device;
|
||||
- string cmd, typeGUID, name;
|
||||
+ string cmd, typeGUID, name, devstr;
|
||||
PartType typeHelper;
|
||||
|
||||
struct poptOption theOptions[] =
|
||||
@@ -156,9 +156,11 @@ int GPTDataCL::DoOptions(int argc, char* argv[]) {
|
||||
|
||||
// Assume first non-option argument is the device filename....
|
||||
device = (char*) poptGetArg(poptCon);
|
||||
+ if (device != NULL)
|
||||
+ devstr = device;
|
||||
poptResetContext(poptCon);
|
||||
|
||||
- if (device != NULL) {
|
||||
+ if (devstr.empty()) {
|
||||
JustLooking(); // reset as necessary
|
||||
BeQuiet(); // Tell called functions to be less verbose & interactive
|
||||
if (LoadPartitions(devstr)) {
|
||||
@@ -498,7 +500,7 @@ int GPTDataCL::DoOptions(int argc, char* argv[]) {
|
||||
cerr << "Error encountered; not saving changes.\n";
|
||||
retval = 4;
|
||||
} // if
|
||||
- } // if (device != NULL)
|
||||
+ } // if (devstr empty)
|
||||
poptFreeContext(poptCon);
|
||||
return retval;
|
||||
} // GPTDataCL::DoOptions()
|
Loading…
Reference in New Issue
Block a user