Newbie questions about Pliant

Newbie questions about Pliant

Exception 11

While testing some file handling programs I got an exception 11
Message posted by maybe Marcus on 2002/01/22 04:17:11
The following code brings my http server daemon down and presents the message
'exception 11' on the Linux command line.

Why?

module "/pliant/admin/file.pli"

var Array:FileInfo F:= (file_list "/" directories)
var Array:FileInfo N:= (file_list "/" reduced)
for (var Int i) 0 F:size-1
  text N:i:name;eol;eol;text F:i:name
  eol
Message posted by maybe Patrice Ossona de Mendez on 2002/01/22 09:16:59
Your program is:

var Array:FileInfo F:= (file_list "/" directories)
 var Array:FileInfo N:= (file_list "/" reduced)
 for (var Int i) 0 F:size-1
   text N:i:name;eol;eol;text F:i:name
   eol

The 'F' and 'N' have no reason to have the same size. What happens to you
is that N gets smaller than F (because F adds the directory entries).
Thus, when i is bigger than N:size-1 (but smaller or equal to F:size-1),
N:i:name gives rise to an exception.

If your server was run at debug level 2, you would have a more precise
error message: "out of range array index", but the index ranges are not
checked at debuging level 0 or 1 (-> exception)