diff options
Diffstat (limited to 'misc-utils')
| -rw-r--r-- | misc-utils/docfdisk.c | 11 | ||||
| -rw-r--r-- | misc-utils/serve_image.c | 2 |
2 files changed, 11 insertions, 2 deletions
diff --git a/misc-utils/docfdisk.c b/misc-utils/docfdisk.c index 486ce29..7b936d5 100644 --- a/misc-utils/docfdisk.c +++ b/misc-utils/docfdisk.c @@ -253,8 +253,17 @@ int main(int argc, char **argv) for (i = 0; i < npart; i++) { ip = &(mh->Partitions[i]); ip->firstUnit = cpu_to_le32(block); - if (!nblocks[i]) + if (!nblocks[i]) { + if (block >= totblocks) { + printf("No space left on device for partition.\n"); + return 1; + } nblocks[i] = totblocks - block; + } + if (nblocks[i] > totblocks || block > totblocks - nblocks[i]) { + printf("Requested partition size exceeds available device space.\n"); + return 1; + } ip->virtualUnits = cpu_to_le32(nblocks[i]); block += nblocks[i]; ip->lastUnit = cpu_to_le32(block-1); diff --git a/misc-utils/serve_image.c b/misc-utils/serve_image.c index 6c8c8fb..ec2090f 100644 --- a/misc-utils/serve_image.c +++ b/misc-utils/serve_image.c @@ -1,5 +1,5 @@ #define PROGRAM_NAME "serve_image" -#define _POSIX_C_SOURCE 200112L +#define _POSIX_C_SOURCE 200809L #include <time.h> #include <errno.h> |
