summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorramon <ramongomez@us.es>2014-03-17 11:36:29 +0000
committerramon <ramongomez@us.es>2014-03-17 11:36:29 +0000
commita73649da0a35ef4e4947a939d8bf2491c6bcaff2 (patch)
treebbf2002e957ffbf461cec9e93619d379f560f970
parent0483b14f234edbefa932d73b6ca2c3d9b3283449 (diff)
#637: Corregidas las condiciones de error incorrectas que no provocaban la salida de una función ante un fallo controlado.
git-svn-id: https://opengnsys.es/svn/branches/version1.0@4187 a21b9725-9963-47de-94b9-378ad31fedc9
-rwxr-xr-xclient/engine/Boot.lib41
-rwxr-xr-xclient/engine/Disk.lib6
-rwxr-xr-xclient/engine/Image.lib33
-rwxr-xr-xclient/engine/Registry.lib4
4 files changed, 42 insertions, 42 deletions
diff --git a/client/engine/Boot.lib b/client/engine/Boot.lib
index 51c78bc2..bc176b85 100755
--- a/client/engine/Boot.lib
+++ b/client/engine/Boot.lib
@@ -48,7 +48,8 @@ fi
PART=$(ogDiskToDev $1 $2) || return $?
TYPE=$(ogGetFsType $1 $2) || return $?
MNTDIR=$(ogMount $1 $2) 2>/dev/null
-[ -z "$MNTDIR" ] && ogRaiseError OG_ERR_PARTITION "$1, $2" && return $?
+# Error si no puede montar sistema de archivos.
+[ -n "$MNTDIR" ] || ogRaiseError OG_ERR_PARTITION "$1, $2" || return $?
case "$TYPE" in
EXT[234]|REISERFS|REISER4|JFS|XFS)
@@ -56,7 +57,7 @@ case "$TYPE" in
PARAMS=$(ogLinuxBootParameters $1 $2) || return $?
read -e KERNEL INITRD APPEND <<<"$PARAMS"
# Si no hay kernel, no hay sistema operativo.
- [ -z "$KERNEL" ] && ogRaiseError $OG_ERR_NOTOS && return $?
+ [ -n "$KERNEL" ] || ogRaiseError $OG_ERR_NOTOS || return $?
# Arrancar de partición distinta a la original.
[ -e "$MNTDIR/etc" ] && APPEND=$(echo $APPEND | awk -v P="$PART " '{sub (/root=[-+=_/a-zA-Z0-9]* /,"root="P);print}')
# Configurar kernel Linux con los parámetros leídos de su GRUB.
@@ -69,7 +70,7 @@ case "$TYPE" in
FILE="$(ogGetPath $1 $2 $f 2>/dev/null)"
[ -n "$FILE" ] && LOADER="$f"
done
- [ -z "$LOADER" ] && ogRaiseError $OG_ERR_NOTOS && return $?
+ [ -n "$LOADER" ] || ogRaiseError $OG_ERR_NOTOS || return $?
if [ "$winboot" == "kexec" ]; then
# Modo de arranque en caliente (con kexec).
cp $OGLIB/grub4dos/* $MNTDIR # */ (Comentario Doxygen)
@@ -128,7 +129,7 @@ fi
# Montar el sistema de archivos.
MNTDIR=$(ogMount $1 $2) 2>/dev/null
-[ -z "$MNTDIR" ] && ogRaiseError OG_ERR_PARTITION "$1, $2" && return $?
+[ -n "$MNTDIR" ] || ogRaiseError OG_ERR_PARTITION "$1, $2" || return $?
# Obtener dato del valor de registro.
ogGetRegistryValue $MNTDIR system '\ControlSet001\Control\ComputerName\ComputerName\ComputerName'
@@ -171,7 +172,7 @@ fi
# Detectar id. de tipo de partición y codificar al mnemonico.
MNTDIR=$(ogMount $1 $2) 2>/dev/null
-[ -z "$MNTDIR" ] && ogRaiseError OG_ERR_PARTITION "$1, $2" && return $?
+[ -n "$MNTDIR" ] || ogRaiseError OG_ERR_PARTITION "$1, $2" || return $?
# Fichero de configuración de GRUB.
CONFDIR=$MNTDIR # Partición de arranque /boot.
@@ -180,7 +181,7 @@ CONFFILE="$CONFDIR/grubPARTITION/boot/grub/grub.cfg"
[ ! -e $CONFFILE ] && CONFFILE="$CONFDIR/grub/menu.lst"
[ ! -e $CONFFILE ] && CONFFILE="$CONFDIR/grub/grub.cfg"
[ ! -e $CONFFILE ] && CONFFILE="$CONFDIR/grub2/grub.cfg"
-[ ! -e $CONFFILE ] && ogRaiseError $OG_ERR_NOTFOUND "grub.cfg" && return $?
+[ -e $CONFFILE ] || ogRaiseError $OG_ERR_NOTFOUND "grub.cfg" || return $?
# Toma del fichero de configuracion los valores del kernel, initrd
# y parámetros de arranque usando las cláusulas por defecto
@@ -282,7 +283,7 @@ fi
# Montar el sistema de archivos.
MNTDIR=$(ogMount $1 $2) 2>/dev/null
-[ -z "$MNTDIR" ] && ogRaiseError OG_ERR_PARTITION "$1, $2" && return $?
+[ -n "$MNTDIR" ] || ogRaiseError OG_ERR_PARTITION "$1, $2" || return $?
NAME="$3"
# Modificar datos en el registro.
@@ -305,20 +306,20 @@ ogSetRegistryValue $MNTDIR SOFTWARE '\Microsoft\Windows NT\CurrentVersion\Winlog
function ogBootMbrXP ()
{
# Variables locales.
-local PART
+local DISK
# Si se solicita, mostrar ayuda.
if [ "$*" == "help" ]; then
ogHelp "$FUNCNAME" "$FUNCNAME int_ndisk " \
- "$FUNCNAME 1 "
+ "$FUNCNAME 1"
return
fi
-# Error si no se reciben 1 parámetros.
+# Error si no se recibe 1 parámetro.
[ $# == 1 ] || ogRaiseError $OG_ERR_FORMAT || return $?
-PART="$(ogDiskToDev $1)" || return $?
-ms-sys -z -f $PART
-ms-sys -m -f $PART
+DISK="$(ogDiskToDev $1)" || return $?
+ms-sys -z -f $DISK
+ms-sys -m -f $DISK
}
@@ -337,7 +338,7 @@ ms-sys -m -f $PART
function ogBootMbrGeneric ()
{
# Variables locales.
-local PART
+local DISK
# Si se solicita, mostrar ayuda.
if [ "$*" == "help" ]; then
@@ -345,12 +346,12 @@ if [ "$*" == "help" ]; then
"$FUNCNAME 1 "
return
fi
-# Error si no se reciben 1 parámetros.
+# Error si no se recibe 1 parámetro.
[ $# == 1 ] || return $(ogRaiseError $OG_ERR_FORMAT; echo $?)
-PART="$(ogDiskToDev $1)" || return $(ogRaiseError $OG_ERR_NOTFOUND; echo $?)
-ms-sys -z -f $PART
-ms-sys -s -f $PART
+DISK="$(ogDiskToDev $1)" || return $?
+ms-sys -z -f $DISK
+ms-sys -s -f $DISK
}
@@ -908,7 +909,7 @@ esac
# Montar el sistema de archivos.
MNTDIR=$(ogMount $1 $2) 2>/dev/null
-[ -z "$MNTDIR" ] && ogRaiseError OG_ERR_PARTITION "$1, $2" && return $?
+[ -n "$MNTDIR" ] || ogRaiseError OG_ERR_PARTITION "$1, $2" || return $?
ETC=$(ogGetPath $1 $2 /etc)
@@ -965,7 +966,7 @@ fi
# Montar el sistema de archivos.
MNTDIR=$(ogMount $1 $2) 2>/dev/null
-[ -z "$MNTDIR" ] && ogRaiseError OG_ERR_PARTITION "$1, $2" && return $?
+[ -n "$MNTDIR" ] || ogRaiseError OG_ERR_PARTITION "$1, $2" || return $?
# Eliminar fichero de configuración de udev para dispositivos fijos de red.
rm -f ${MNTDIR}/etc/udev/rules.d/70-persistent-net.rules
diff --git a/client/engine/Disk.lib b/client/engine/Disk.lib
index 6f695c2a..293aac3f 100755
--- a/client/engine/Disk.lib
+++ b/client/engine/Disk.lib
@@ -51,7 +51,7 @@ if [ "$*" == "help" ]; then
"$FUNCNAME 1 NTFS:10000000 EXT3:5000000 LINUX-SWAP:1000000"
return
fi
-# Error si no se reciben menos de 2 parámetros.
+# Error si no se reciben al menos 2 parámetros.
[ $# -ge 2 ] || ogRaiseError $OG_ERR_FORMAT || return $?
# Nº total de sectores, para evitar desbordamiento (evitar redondeo).
@@ -101,13 +101,13 @@ while [ $# -gt 0 ]; do
SIZE=$[SIZE*2]
# Comprobar si la partición es extendida.
if [ $ID = 5 ]; then
- [ $PART -gt 4 ] && ogRaiseError $OG_ERR_FORMAT && return $?
+ [ $PART -gt 4 ] && return (ogRaiseError $OG_ERR_FORMAT; echo $?)
EXTSTART=$START
EXTSIZE=$SIZE
fi
# Incluir particiones lógicas dentro de la partición extendida.
if [ $PART = 5 ]; then
- [ -z "$EXTSTART" ] && ogRaiseError $OG_ERR_FORMAT && return $?
+ [ -z "$EXTSTART" ] && return (ogRaiseError $OG_ERR_FORMAT; echo $?)
START=$EXTSTART
SECTORS=$[EXTSTART+EXTSIZE]
fi
diff --git a/client/engine/Image.lib b/client/engine/Image.lib
index d749d397..59d17809 100755
--- a/client/engine/Image.lib
+++ b/client/engine/Image.lib
@@ -39,7 +39,7 @@ if [ "$*" == "help" ]; then
return
fi
# Error si no se reciben al menos los 2 parámetros para obtener el valor default.
-[ $# -lt 2 ] && ogRaiseError $OG_ERR_FORMAT && return $?
+[ $# == 2 ] || ogRaiseError $OG_ERR_FORMAT || return $?
PART="$1"
@@ -130,7 +130,7 @@ if [ "$*" == "help" ]; then
fi
# Error si no se reciben al menos 2 parámetros.
-[ $# -lt 2 ] && ogRaiseError $OG_ERR_FORMAT && return $?
+[ $# == 2 ] || ogRaiseError $OG_ERR_FORMAT || return $?
# controlamos que el parametro 1 (imagen) es tipo file.
[ -f $1 ] || ogRaiseError $OG_ERR_NOTFOUND "$1" || return $?
@@ -241,7 +241,7 @@ if [ "$*" == "help" ]; then
return
fi
# Error si no se reciben 4 parámetros.
-[ $# -lt 4 ] && ogRaiseError $OG_ERR_FORMAT && return $?
+[ $# == 4 ] || ogRaiseError $OG_ERR_FORMAT || return $?
# Comprobar que no está bloqueada ni la partición, ni la imagen.
PART="$(ogDiskToDev $1 $2)" || return $?
@@ -249,10 +249,11 @@ if ogIsLocked $1 $2; then
ogRaiseError $OG_ERR_LOCKED "$MSG_PARTITION $1, $2"
return $?
fi
+
IMGTYPE="img" # Extensión genérica de imágenes.
IMGDIR=$(ogGetParentPath "$3" "$4")
-
[ -n "$IMGDIR" ] || ogRaiseError $OG_ERR_NOTFOUND "$3 $(dirname $4)" || return $?
+
IMGFILE="$IMGDIR/$(basename "$4").$IMGTYPE"
if ogIsImageLocked "$IMGFILE"; then
ogRaiseError $OG_ERR_LOCKED "$MSG_IMAGE $3, $4"
@@ -312,7 +313,7 @@ if [ "$*" == "help" ]; then
return
fi
# Error si no se reciben 3 parámetros.
-[ $# -lt 3 ] && ogRaiseError $OG_ERR_FORMAT && return $?
+[ $# == 3 ] || ogRaiseError $OG_ERR_FORMAT || return $?
DISK=$(ogDiskToDev "$1") || return $?
IMGDIR=$(ogGetParentPath "$2" "$3")
@@ -350,7 +351,7 @@ if [ "$*" == "help" ]; then
return
fi
# Error si no se reciben 3 parámetros.
-[ $# -lt 3 ] && ogRaiseError $OG_ERR_FORMAT && return $?
+[ $# == 3 ] || ogRaiseError $OG_ERR_FORMAT || return $?
DISK=$(ogDiskToDev "$1") || return $?
IMGDIR=$(ogGetParentPath "$2" "$3")
@@ -420,11 +421,11 @@ if [ "$*" == "help" ]; then
return
fi
# Error si no se reciben 1 o 2 parámetros.
-[ $# -lt 1 -o $# -gt 2 ] && ogRaiseError $OG_ERR_FORMAT && return $?
+[ $# == 1 -o $# == 2 ] || ogRaiseError $OG_ERR_FORMAT || return $?
# Comprobar que existe directorio de imagen
IMGDIR=$(ogGetParentPath $@) || return $?
# Crear fichero de bloqueo.
-touch $IMGDIR/$(basename "${!#}").lock
+touch $IMGDIR/$(basename "${!#}").lock 2>/dev/null || ogRaiseError $OG_ERR_NOTWRITE "$*" || return $?
}
@@ -470,7 +471,7 @@ if [ "$*" == "help" ]; then
return
fi
# Error si no se reciben 4 parámetros.
-[ $# -lt 4 ] && return $(ogRaiseError $OG_ERR_FORMAT; echo $?)
+[ $# == 4 ] || ogRaiseError $OG_ERR_FORMAT || return $?)
# Procesar parámetros.
PART="$(ogDiskToDev $3 $4)" || return $(ogRaiseError $OG_ERR_NOTFOUND " $3 $4"; echo $?)
#IMGTYPE=$(ogGetImageType "$1" "$2")
@@ -485,8 +486,6 @@ IMGSIZE=$(ogGetImageSize "$1" "$2") || return $(ogRaiseError $OG_ERR_IMAGE " $1
#TODO:
#Si la particion no esta formateado o tiene problemas formateamos
ogMount $3 $4 || ogFormat $3 $4
-#PARTSIZE=$(parted -sm $DISK unit kB print | \
-# awk -F: -v np=$4 '{if ($1==np) {gsub(/kB/,""); print $4} } ')
PARTSIZE=$(ogGetPartitionSize $3 $4)
if [ $IMGSIZE -gt $PARTSIZE ]; then
ogRaiseError $OG_ERR_IMGSIZEPARTITION " $PARTSIZE < $IMGSIZE"
@@ -503,7 +502,7 @@ if ogIsLocked $3 $4; then
fi
# Desmontar y bloquear partición.
ogUnmount $3 $4 2>/dev/null || return $(ogRaiseError $OG_ERR_PARTITION " $3 $4"; echo $?)
-ogLock $3 $4 || return $(ogRaiseError $OG_ERR_PARTITION " $3 $4"; echo $?)
+ogLock $3 $4 || return $?
trap "ogUnlock $3 $4" 1 2 3 6 9
# Restaurar según el tipo de imagen.
@@ -551,7 +550,7 @@ if [ "$*" == "help" ]; then
return
fi
# Error si no se reciben 3 parámetros.
-[ $# -lt 3 ] && ogRaiseError $OG_ERR_FORMAT && return $?
+[ $# == 3 ] || ogRaiseError $OG_ERR_FORMAT || return $?
# Procesar parámetros.
DISK=$(ogDiskToDev "$3") || return $?
IMGFILE=$(ogGetPath "$1" "$2.mbr") || return $?
@@ -587,7 +586,7 @@ if [ "$*" == "help" ]; then
return
fi
# Error si no se reciben 3 parámetros.
-[ $# -lt 3 ] && ogRaiseError $OG_ERR_FORMAT && return $?
+[ $# == 3 ] || ogRaiseError $OG_ERR_FORMAT || return $?
# Procesar parámetros.
DISK=$(ogDiskToDev "$3") || return $?
IMGFILE=$(ogGetPath "$1" "$2.mbr") || return $?
@@ -620,7 +619,7 @@ if [ "$*" == "help" ]; then
return
fi
# Error si no se reciben 1 o 2 parámetros.
-[ $# -lt 1 -o $# -gt 2 ] && ogRaiseError $OG_ERR_FORMAT && return $?
+[ $# == 1 -o $# == 2 ] || ogRaiseError $OG_ERR_FORMAT || return $?
# Borrar fichero de bloqueo para la imagen.
rm -f $(ogGetPath $@.lock)
@@ -754,8 +753,8 @@ if [ "$*" == "help" ]; then
"$FUNCNAME REPO /aula1/winxp ==> 5642158"
return
fi
-# Error si no se reciben menos de 2 parámetros.
-[ $# -lt 2 ] && ogRaiseError $OG_ERR_FORMAT && return $?
+# Error si no se reciben 2 parámetros.
+[ $# == 2 ] || ogRaiseError $OG_ERR_FORMAT || return $?
# Error si el fichero de imagen no es accesible.
IMGFILE=$(ogGetPath "$1" "$2.img") || return $?
[ -r "$IMGFILE" ] || ogRaiseError OG_ERR_NOTFOUND "$IMGFILE" || return $?
diff --git a/client/engine/Registry.lib b/client/engine/Registry.lib
index 57e0abe5..d31e1603 100755
--- a/client/engine/Registry.lib
+++ b/client/engine/Registry.lib
@@ -229,12 +229,12 @@ fi
# Error si no se reciben 2 parámetros.
[ $# == 2 ] || ogRaiseError $OG_ERR_FORMAT || return $?
-# Camino del fichero de registro en NT/2000 o XP/Vista/7.
+# Camino del fichero de registro en NT/2000 o en XP y posteriores.
FILENT=$(ogGetPath "/$1/winnt/system32/config/$2")
[ -f "$FILENT" ] && FILE="$FILENT"
FILEXP=$(ogGetPath "/$1/windows/system32/config/$2")
[ -f "$FILEXP" ] && FILE="$FILEXP"
-[ ! -f $FILE ] && ogRaiseError OG_ERR_NOTFOUND "$1,$2" && return $?
+[ -f $FILE ] || ogRaiseError OG_ERR_NOTFOUND "$1,$2" || return $?
echo "$FILE"
}