The Higher Education and Research forge

Home My Page Projects Code Snippets Project Openings Développement de WIMS
Summary Activity Forums Tracker Tasks Docs Surveys News SCM Files Listes Sympa

[#8426] Message d'erreur incomplet dans createxo

Date:
2012-07-11 06:10
Priority:
3
State:
Open
Submitted by:
Eric Reyssat (reyssat)
Assigned to:
Nobody (None)
Hardware:
none
Operating System:
none
Version:
none
Severity:
none
Resolution:
none
URL:
état:
Open
Summary:
Message d'erreur incomplet dans createxo

Detailed description
Un message d'erreur provenant de createxo est incomplet suite à la non interprétation d'une variable.

Le texte d'exo suivant provoque bien sûr une erreur puique "hello" n'est pas une commande wims :
%%%%%%%%%%%%%%%%%%%%%%
\text{t=wims(hello)}
\statement{}
%%%%%%%%%%%%%%%%%%%%%%

Si cet exo est dans modtool, le message d'erreur affiché est correct :
La commande ``hello'' n'est pas valide.

Mais si l'exo est testé dans createxo, le message est tronqué :
La commande ``'' n'est pas valide.


Je sais pourquoi, mais ne sais pas réparer.

1/ wims interprète la ligne
tmp0=!hello
du fichier .def, et s'aperçoit que la commande hello n'existe pas et prépare donc un message d'erreur du type bad_cmd.

2/ D'après le fichier msg/module_error.msg.fr, le message d'erreur à envoyer en cas de mauvaise commande est
La commande ``$wims_error_data'' n'est pas valide.

3/ Il faut donc que la variable wims_error_data ait été auparavant affectée de la valeur "hello", ce qui est tenté par la fonction setvar de var.c, appelée avec les paramètres wims_error_data et hello. Cette affectation est interdite par le code source lorsque la demande provient d'un fichier utilisateur ( (untrust&6)!=0 ) (ce qui est le cas pour createxo mais pas pour modtool) et que la variable est une variable commençant par wims_ ( var_checkright(vname,var_writable,var_nw,var_pfx)==0 ).



Je ne sais pas modifier ce comportement sans baisser la sécurité.

Eric

No comments have been posted

No related tasks

No attached documents

No changes have been made to this item