aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Soltys <soltys@ziu.info>2010-10-05 23:14:14 +0200
committerMichal Soltys <soltys@ziu.info>2010-10-08 12:40:51 +0200
commitdfc78281b079868a640bab1915502b61626b35d5 (patch)
tree57c4d6f0384fecc49910302eaf07e1a43d14740a
parent0104b5d220f8cc5676a7c09b5689d7b13023fac1 (diff)
downloadsyslinux-dfc78281b079868a640bab1915502b61626b35d5.tar.gz
syslinux-dfc78281b079868a640bab1915502b61626b35d5.tar.xz
syslinux-dfc78281b079868a640bab1915502b61626b35d5.zip
com32/chain: fix condition in pentry_mangle()
Signed-off-by: Michal Soltys <soltys@ziu.info>
-rw-r--r--com32/chain/chain.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/com32/chain/chain.c b/com32/chain/chain.c
index 9fdb6ce5..25d8fa75 100644
--- a/com32/chain/chain.c
+++ b/com32/chain/chain.c
@@ -301,7 +301,7 @@ static void hide_unhide(const struct part_iter *_iter)
bool write_back = false;
if (_iter->type != typedos) {
- error("Option 'hide' is only meaningful for legacy partition scheme.");
+ error("Option 'hide' is only meaningful for legacy partition scheme.\n");
goto bail;
}
if (!(mbr = disk_read_sectors(&_iter->di, 0, 1))) {
@@ -399,11 +399,13 @@ static int pentry_mangle(struct part_iter *miter)
if (miter->type != typedos) {
error("Partition entry mangling ('[un]hide[all]', 'mbrchs')\n"
- "is meaningful only for legacy partition scheme.");
+ "is meaningful only for legacy partition scheme.\n");
goto bail;
}
- if ((miter->index < 1 || miter->index > 4) && opt.hide & 1)
- error("WARNING: option '[un]hide' specified with a non-primary partition.\n");
+ if (opt.hide &&
+ ((miter->index < 1 && opt.hide < 4) || /* try to hide a disk */
+ (miter->index > 4 && opt.hide == 1))) /* try to hide a part when limited to pri */
+ error("WARNING: It's impossible to hide the selected partition (or you selected a disk).\n");
if (!(iter = pi_begin(&miter->di, 1))) /* turn on stepall */
goto bail;