Index: trunk/include/samhain.h
===================================================================
--- trunk/include/samhain.h	(revision 19)
+++ trunk/include/samhain.h	(revision 20)
@@ -252,4 +252,7 @@
 extern long int eintr__result;
 
+extern int     sh_argc_store;
+extern char ** sh_argv_store;
+
 #include "sh_calls.h"
 
Index: trunk/include/sh_calls.h
===================================================================
--- trunk/include/sh_calls.h	(revision 19)
+++ trunk/include/sh_calls.h	(revision 20)
@@ -53,5 +53,5 @@
 			 struct sigaction *oldact);
 
-int      sh_calls_set_bind_addr (char *);
+int      sh_calls_set_bind_addr (const char *);
 long int retry_connect(char * file, int line,
 		       int fd, struct sockaddr *serv_addr, int addrlen);
Index: trunk/include/sh_error.h
===================================================================
--- trunk/include/sh_error.h	(revision 19)
+++ trunk/include/sh_error.h	(revision 20)
@@ -91,7 +91,7 @@
 
 
-int sh_error_verify (char * s);
-int sh_error_logverify_mod (char * s); /* just list, don't verify */
-int sh_error_logverify (char * s);
+int sh_error_verify (const char * s);
+int sh_error_logverify_mod (const char * s); /* just list, don't verify */
+int sh_error_logverify (const char * s);
 
 void sh_error_dbg_switch(void);
@@ -124,5 +124,5 @@
 /* set level for error logging 
  */
-int sh_error_setlog(char * str_s);
+int sh_error_setlog(const char * str_s);
 
 /* set severity levels
@@ -132,34 +132,34 @@
 /* set priorities
  */
-int sh_error_set_level(char * str_s, int *facility);
+int sh_error_set_level(const char * str_s, int *facility);
 
 /* set level for TCP export
  */
-int sh_error_setexport(char *  str_s);
+int sh_error_setexport(const char *  str_s);
 
 /* set level for syslog
  */
-int sh_error_set_syslog (char * flag_s);
+int sh_error_set_syslog (const char * flag_s);
 
 /* set level for printing
  */
-int sh_error_setprint(char *  flag_s);
+int sh_error_setprint(const char *  flag_s);
 
 /* set severity for external
  */
-int sh_error_set_external (char * str_s);
+int sh_error_set_external (const char * str_s);
 
 /* set severity for external
  */
-int sh_error_set_database (char * str_s);
+int sh_error_set_database (const char * str_s);
 
 /* set severity for external
  */
-int sh_error_set_prelude (char * str_s);
+int sh_error_set_prelude (const char * str_s);
 
 
 /* set level for mailing
  */
-int sh_error_setseverity (char * flag);
+int sh_error_setseverity (const char * flag);
 
 /* set debug level
Index: trunk/include/sh_files.h
===================================================================
--- trunk/include/sh_files.h	(revision 19)
+++ trunk/include/sh_files.h	(revision 20)
@@ -59,5 +59,5 @@
 /* set maximum recursion level
  */
-int sh_files_setrecursion (char * flag_s);
+int sh_files_setrecursion (const char * flag_s);
 
 /* select a directory stack 2=Two, else One (standard)
Index: trunk/include/sh_forward.h
===================================================================
--- trunk/include/sh_forward.h	(revision 19)
+++ trunk/include/sh_forward.h	(revision 20)
@@ -22,5 +22,5 @@
 
 #ifndef SH_STANDALONE
-int sh_forward_set_strip (char * str);
+int sh_forward_set_strip (const char * str);
 
 #endif
@@ -28,5 +28,5 @@
 /* generate a random password
  */
-int sh_forward_create_password (char * dummy);
+int sh_forward_create_password (const char * dummy);
 
 /* set time limit
@@ -40,5 +40,5 @@
 /* create client entry for given password
  */
-int sh_forward_make_client (char * str);
+int sh_forward_make_client (const char * str);
 
 #ifdef SH_WITH_SERVER
Index: trunk/include/sh_hash.h
===================================================================
--- trunk/include/sh_hash.h	(revision 19)
+++ trunk/include/sh_hash.h	(revision 20)
@@ -38,5 +38,5 @@
 /* write database to stdout
  */
-int sh_hash_pushdata_stdout (char * str);
+int sh_hash_pushdata_stdout (const char * str);
 
 /* version string for database
@@ -46,13 +46,13 @@
 /* List database content
  */
-int sh_hash_list_db (char * db_file);
+int sh_hash_list_db (const char * db_file);
 
 /* List database content with full detail
  */
-int set_full_detail (char * c);
+int set_full_detail (const char * c);
 
 /* List database content with full detail, comma delimited
  */
-int set_list_delimited (char * c);
+int set_list_delimited (const char * c);
 
 /* Read the database from disk.
Index: trunk/include/sh_mail.h
===================================================================
--- trunk/include/sh_mail.h	(revision 19)
+++ trunk/include/sh_mail.h	(revision 20)
@@ -38,5 +38,5 @@
 /* test mailbox
  */
-int sh_mail_sigverify (char * s);
+int sh_mail_sigverify (const char * s);
 
 /* maximum number of mail attempts
Index: trunk/include/sh_tiger.h
===================================================================
--- trunk/include/sh_tiger.h	(revision 19)
+++ trunk/include/sh_tiger.h	(revision 20)
@@ -17,5 +17,5 @@
 /* the checksum function
  */
-/*@owned@*/ char * sh_tiger_hash (char * filename, TigerType what, 
+/*@owned@*/ char * sh_tiger_hash (const char * filename, TigerType what, 
 				  UINT64 Length);
 
@@ -37,5 +37,5 @@
 /* GnuPG-like format
  */
-/*@owned@*/ char * sh_tiger_hash_gpg (char * filename, TigerType what, 
+/*@owned@*/ char * sh_tiger_hash_gpg (const char * filename, TigerType what, 
 				      UINT64 Length);
 #endif
Index: trunk/include/sh_unix.h
===================================================================
--- trunk/include/sh_unix.h	(revision 19)
+++ trunk/include/sh_unix.h	(revision 20)
@@ -144,5 +144,5 @@
 /* chroot directory
  */
-int sh_unix_set_chroot(char * str);
+int sh_unix_set_chroot(const char * str);
 
 /* whether to use localtime for file timesatams in logs
@@ -233,6 +233,6 @@
 /* deamon mode 
  */
-int sh_unix_setdeamon  (char * dummy);
-int sh_unix_setnodeamon(char * dummy);
+int sh_unix_setdeamon  (const char * dummy);
+int sh_unix_setnodeamon(const char * dummy);
 
 /* Test whether file exists
Index: trunk/include/sh_utils.h
===================================================================
--- trunk/include/sh_utils.h	(revision 19)
+++ trunk/include/sh_utils.h	(revision 20)
@@ -74,10 +74,10 @@
 /* eval boolean input
  */
-int sh_util_flagval(char * c, int * fval);
+int sh_util_flagval(const char * c, int * fval);
 
 /* ask if a file should be updated (returns S_TRUE/S_FALSE)
  */
 int sh_util_ask_update(char * path);
-int sh_util_set_interactive(char * str);
+int sh_util_set_interactive(const char * str);
 
 /* don't log output files
@@ -95,9 +95,9 @@
 /* change verifier 
  */
-int sh_util_set_newkey (char * str);
+int sh_util_set_newkey (const char * str);
 
 /* server mode 
  */
-int sh_util_setserver (char * dummy);
+int sh_util_setserver (const char * dummy);
 
 /* a simple compressor
@@ -116,9 +116,9 @@
 /* set timer for main loop
  */
-int sh_util_setlooptime (char * str);
+int sh_util_setlooptime (const char * str);
 
 /* whether init or check the database
  */
-int  sh_util_setchecksum (char * str);
+int  sh_util_setchecksum (const char * str);
 
 /* compare an in_string against a regular expression regex_str
Index: trunk/include/slib.h
===================================================================
--- trunk/include/slib.h	(revision 19)
+++ trunk/include/slib.h	(revision 20)
@@ -297,29 +297,29 @@
   /* Open for writing.
    */
-  SL_TICKET  sl_open_write       (char * fname, int priviledge_mode);
+  SL_TICKET  sl_open_write       (const char * fname, int priviledge_mode);
 
   /* Open for reading.
    */
-  SL_TICKET  sl_open_read        (char * fname, int priviledge_mode);
+  SL_TICKET  sl_open_read        (const char * fname, int priviledge_mode);
 
   /* Open for reading w/minimum checking.
    */
-  SL_TICKET  sl_open_fastread    (char * fname, int priviledge_mode);
+  SL_TICKET  sl_open_fastread    (const char * fname, int priviledge_mode);
 
   /* Open for read and write.
    */
-  SL_TICKET  sl_open_rdwr        (char * fname, int priviledge_mode);
+  SL_TICKET  sl_open_rdwr        (const char * fname, int priviledge_mode);
 
   /* Open for read and write, fail if file exists.
    */
-  SL_TICKET sl_open_safe_rdwr    (char * fname, int priv);
+  SL_TICKET sl_open_safe_rdwr    (const char * fname, int priv);
 
   /* Open for write, truncate.
    */
-  SL_TICKET  sl_open_write_trunc (char * fname, int priviledge_mode);
+  SL_TICKET  sl_open_write_trunc (const char * fname, int priviledge_mode);
 
   /* Open for read and write, truncate.
    */
-  SL_TICKET  sl_open_rdwr_trunc  (char * fname, int priviledge_mode);
+  SL_TICKET  sl_open_rdwr_trunc  (const char * fname, int priviledge_mode);
 
   /* Close file.
@@ -394,4 +394,10 @@
   char * sl_trust_errfile(void);
 
+  /* Overflow tests
+   */
+  int sl_ok_muli (int a, int b);
+  int sl_ok_divi (int a, int b);
+  int sl_ok_addi (int a, int b);
+  int sl_ok_subi (int a, int b);
 
 #ifdef  __cplusplus
@@ -500,6 +506,6 @@
 void sl_trace_in   (char * str, char * file, int line);
 void sl_trace_out  (char * str, char * file, int line);
-int  sl_trace_file (char * str);
-int  sl_trace_use  (char * str);
+int  sl_trace_file (const char * str);
+int  sl_trace_use  (const char * str);
 
 
