summaryrefslogtreecommitdiffstats
path: root/client/engine/Image.lib
diff options
context:
space:
mode:
authorramon <ramongomez@us.es>2016-04-11 10:07:41 +0000
committerramon <ramongomez@us.es>2016-04-11 10:07:41 +0000
commitbac2d636d1c1cfee17430e236f759af7ff8e82c4 (patch)
tree328902dc929d3ca791d54c642ab66c68e03996f8 /client/engine/Image.lib
parent8883aa5f894bc1f1267a0abeba5836ffb000115f (diff)
#740: Comprobar que no se intenta crear imagen de disco en el propio disco.
git-svn-id: https://opengnsys.es/svn/branches/version1.1@4877 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'client/engine/Image.lib')
-rwxr-xr-xclient/engine/Image.lib14
1 files changed, 9 insertions, 5 deletions
diff --git a/client/engine/Image.lib b/client/engine/Image.lib
index 49e65e22..2b828f23 100755
--- a/client/engine/Image.lib
+++ b/client/engine/Image.lib
@@ -244,21 +244,25 @@ if ogIsDiskLocked $1; then
ogRaiseError $OG_ERR_LOCKED "$MSG_LOCKED $1"
return $?
fi
-
IMGTYPE="dsk" # Extensión genérica de imágenes de disco.
IMGDIR=$(ogGetParentPath "$2" "$3")
[ -n "$IMGDIR" ] || ogRaiseError $OG_ERR_NOTFOUND "$2 $(dirname $3)" || return $?
-
IMGFILE="$IMGDIR/$(basename "$3").$IMGTYPE"
if ogIsImageLocked "$IMGFILE"; then
ogRaiseError $OG_ERR_LOCKED "$MSG_IMAGE $3, $4"
return $?
fi
+
+# No guardar imagen en el propio disco (disco no incluido en el camino del repositorio).
+if [[ $(ogGetPath "$2" /) =~ ^$DISK ]]; then
+ ogRaiseError $OG_ERR_IMAGE "$2 = $DISK"
+ return $?
+fi
+
# Generar la instruccion a ejecutar antes de aplicar los bloqueos.
PROGRAM=$(ogCreateImageSyntax $DISK $IMGFILE)
-# Desmontar todos los sistemas de archivos del disco, bloquear partición e imagen.
+# Desmontar todos los sistemas de archivos del disco, bloquear disco e imagen.
ogUnmountAll $1 2>/dev/null
-### Pendiente: bloquear disco
ogLockDisk $1 || return $?
ogLockImage "$2" "$3.$IMGTYPE" || return $?
@@ -272,7 +276,7 @@ if [ $ERRCODE != 0 ]; then
ogRaiseError $OG_ERR_IMAGE "$1 $2 $IMGFILE"
rm -f "$IMGFILE"
fi
-# Desbloquear partición e imagen.
+# Desbloquear disco e imagen.
ogUnlockDisk $1
ogUnlockImage "$2" "$3.$IMGTYPE"
return $ERRCODE