Index: /branches/eam_branches/ipp-20150616/Ohana/src/libfits/include/gfitsio.h
===================================================================
--- /branches/eam_branches/ipp-20150616/Ohana/src/libfits/include/gfitsio.h	(revision 38526)
+++ /branches/eam_branches/ipp-20150616/Ohana/src/libfits/include/gfitsio.h	(revision 38527)
@@ -99,14 +99,14 @@
 
 typedef struct {
-  char ttype[16]; 	      // TTYPE field of original table
-  char ttype_cmt[80];	      // comment associated with TTYPE
-  char tunit[16];	      // TUNIT field of original table
-  char tunit_cmt[80];	      // comment associated with TUNIT
-  char tformat[16];	      // TFORM field of original table
-  char tformat_cmt[80];	      // comment associated with TFORM
-  char zctype[80];	      // compression type for this field
+  char ttype[256]; 	      // TTYPE field of original table
+  char ttype_cmt[256];	      // comment associated with TTYPE
+  char tunit[256];	      // TUNIT field of original table
+  char tunit_cmt[256];	      // comment associated with TUNIT
+  char tformat[256];	      // TFORM field of original table
+  char tformat_cmt[256];      // comment associated with TFORM
+  char zctype[256];	      // compression type for this field
   VarLengthColumn zdef;	      // description of the output variable length column
 
-  char datatype[80];	      // named data type associated with ttype (eg, 18J -> int, 18D -> double)
+  char datatype[256];	      // named data type associated with ttype (eg, 18J -> int, 18D -> double)
   int Nvalues;		      // number of values per row (eg 18J -> 18 int values)
   int pixsize;		      // number of bytes per value of this row (eg, 18J -> 4 bytes)
Index: /branches/eam_branches/ipp-20150616/Ohana/src/libfits/table/F_create_TH.c
===================================================================
--- /branches/eam_branches/ipp-20150616/Ohana/src/libfits/table/F_create_TH.c	(revision 38526)
+++ /branches/eam_branches/ipp-20150616/Ohana/src/libfits/table/F_create_TH.c	(revision 38527)
@@ -11,5 +11,5 @@
   
   int i;
-  char axis[10];
+  char axis[128];
   
   header[0].datasize = NBYTES;
@@ -27,5 +27,5 @@
   
   for (i = 0; i < header[0].Naxes; i++) {
-    sprintf (axis, "NAXIS%d", i + 1);
+    snprintf (axis, 64, "NAXIS%d", i + 1);
     gfits_modify (header,  axis, OFF_T_FMT, 1,  header[0].Naxis[i]);
   }
Index: /branches/eam_branches/ipp-20150616/Ohana/src/libfits/table/F_define_column.c
===================================================================
--- /branches/eam_branches/ipp-20150616/Ohana/src/libfits/table/F_define_column.c	(revision 38526)
+++ /branches/eam_branches/ipp-20150616/Ohana/src/libfits/table/F_define_column.c	(revision 38527)
@@ -11,5 +11,5 @@
   off_t Naxis1;
   int Nfields, Nbytes, Nval;
-  char type[16], field[16];
+  char type[64], field[64];
   
   if (!gfits_bintable_format (format, type, &Nval, &Nbytes)) return (FALSE);
@@ -21,17 +21,17 @@
   Naxis1 += Nbytes*Nval;
 
-  sprintf (field, "TTYPE%d", Nfields);
+  snprintf (field, 64, "TTYPE%d", Nfields);
   gfits_modify (header, field, "%s", 1, label);
   gfits_modify_alt (header, field, "%C", 1, comment);
-  sprintf (field, "TUNIT%d", Nfields);
+  snprintf (field, 64, "TUNIT%d", Nfields);
   gfits_modify (header, field, "%s", 1, unit);
-  sprintf (field, "TFORM%d", Nfields);
+  snprintf (field, 64, "TFORM%d", Nfields);
   gfits_modify (header, field, "%s", 1, format);
 
   // add scaling parameters unless they amount to a noop
   if ((bscale != 1.0) || (bzero != 0.0)) {
-      sprintf (field, "TSCAL%d", Nfields);
+      snprintf (field, 64, "TSCAL%d", Nfields);
       gfits_modify (header, field, "%lf", 1, bscale);
-      sprintf (field, "TZERO%d", Nfields);
+      snprintf (field, 64, "TZERO%d", Nfields);
       gfits_modify (header, field, "%lf", 1, bzero);
   }
@@ -54,5 +54,5 @@
   off_t Naxis1;
   int Nfields, Nbytes, Nval;
-  char type[16], field[16];
+  char type[64], field[64];
   
   if (!gfits_bintable_format (format, type, &Nval, &Nbytes)) return (FALSE);
@@ -64,5 +64,5 @@
   Naxis1 += Nbytes*Nval;
 
-  sprintf (field, "TTYPE%d", Nfields);
+  snprintf (field, 64, "TTYPE%d", Nfields);
   gfits_modify (header, field, "%s", 1, label);
   if (comment) {
@@ -70,15 +70,15 @@
   }
   if (unit) {
-    sprintf (field, "TUNIT%d", Nfields);
+    snprintf (field, 64, "TUNIT%d", Nfields);
     gfits_modify (header, field, "%s", 1, unit);
   }
-  sprintf (field, "TFORM%d", Nfields);
+  snprintf (field, 64, "TFORM%d", Nfields);
   gfits_modify (header, field, "%s", 1, format);
 
   // add scaling parameters unless they amount to a noop
   if ((bscale != 1.0) || (bzero != 0.0)) {
-      sprintf (field, "TSCAL%d", Nfields);
+      snprintf (field, 64, "TSCAL%d", Nfields);
       gfits_modify (header, field, "%lf", 1, bscale);
-      sprintf (field, "TZERO%d", Nfields);
+      snprintf (field, 64, "TZERO%d", Nfields);
       gfits_modify (header, field, "%lf", 1, bzero);
   }
@@ -97,5 +97,5 @@
   off_t Naxis1;
   int Nstart, Nfields, Nbytes, Nval;
-  char type[16], field[16], cformat[16];
+  char type[64], field[64], cformat[64];
 
   strcpy (cformat, format);
@@ -109,13 +109,13 @@
   Naxis1 += Nbytes*Nval;
 
-  sprintf (field, "TTYPE%d", Nfields);
+  snprintf (field, 64, "TTYPE%d", Nfields);
   gfits_modify (header, field, "%s", 1, label);
   gfits_modify_alt (header, field, "%C", 1, comment);
-  sprintf (field, "TUNIT%d", Nfields);
+  snprintf (field, 64, "TUNIT%d", Nfields);
   gfits_modify (header, field, "%s", 1, unit);
-  sprintf (field, "TFORM%d", Nfields);
+  snprintf (field, 64, "TFORM%d", Nfields);
   gfits_modify (header, field, "%s", 1, format);
 
-  sprintf (field, "TBCOL%d", Nfields);
+  snprintf (field, 64, "TBCOL%d", Nfields);
   gfits_modify (header, field, "%d", 1, Nstart);
 
Index: /branches/eam_branches/ipp-20150616/Ohana/src/libfits/table/F_get_T_column.c
===================================================================
--- /branches/eam_branches/ipp-20150616/Ohana/src/libfits/table/F_get_T_column.c	(revision 38526)
+++ /branches/eam_branches/ipp-20150616/Ohana/src/libfits/table/F_get_T_column.c	(revision 38527)
@@ -9,5 +9,5 @@
 {
   
-  char Tform[100], field[100], tmp[100];
+  char Tform[256], field[256], tmp[256];
   int  start, Nchar, i, N;
   
@@ -22,8 +22,8 @@
   /* should I count fields from 0 or from 1? */
   
-  sprintf (field, "TBCOL%d\0", X);
+  snprintf (field, 256, "TBCOL%d\0", X);
   gfits_scan (&table[0].header, field, "%d", &start, 1);
   start --;
-  sprintf (field, "TFORM%d\0", X);
+  snprintf (field, 256, "TFORM%d\0", X);
   gfits_scan (&table[0].header, field, "%s", Tform, 1);
   Nchar = atof (&Tform[1]);
Index: /branches/eam_branches/ipp-20150616/Ohana/src/libfits/table/F_get_T_value.c
===================================================================
--- /branches/eam_branches/ipp-20150616/Ohana/src/libfits/table/F_get_T_value.c	(revision 38526)
+++ /branches/eam_branches/ipp-20150616/Ohana/src/libfits/table/F_get_T_value.c	(revision 38527)
@@ -10,5 +10,5 @@
 {
   
-  char Tform[100], field[100];
+  char Tform[256], field[256];
   int  start, Nchar, byte;
   char tmp[1000];
@@ -16,11 +16,12 @@
   /* no error checking, all sorts of problems! */
   
-  sprintf (field, "TBCOL%d\0", X);
+  snprintf (field, 256, "TBCOL%d\0", X);
   gfits_scan (&table[0].header, field, "%d", &start, 1);
   start --;
   
-  sprintf (field, "TFORM%d\0", X);
+  snprintf (field, 256, "TFORM%d\0", X);
   gfits_scan (&table[0].header, field, "%s", Tform, 1);
   Nchar = atof (&Tform[1]);
+  myAssert (Nchar < 999, "overflow");
   
   byte = Y*table[0].Naxis[0] + start;
Index: /branches/eam_branches/ipp-20150616/Ohana/src/libfits/table/F_get_column.c
===================================================================
--- /branches/eam_branches/ipp-20150616/Ohana/src/libfits/table/F_get_column.c	(revision 38526)
+++ /branches/eam_branches/ipp-20150616/Ohana/src/libfits/table/F_get_column.c	(revision 38527)
@@ -25,5 +25,5 @@
   off_t Nx, Ny;
   int i, N, Nfields, Nval, Nbytes, Nstart, Nv, Nb;
-  char tlabel[80], field[80], format[80], tmpline[16];
+  char tlabel[256], field[256], format[256], tmpline[64];
   char *Pin, *Pout, *array;
   double Bscale, Bzero;
@@ -36,5 +36,5 @@
   if (!gfits_scan (header, "TFIELDS", "%d", 1, &Nfields)) return (NULL);
   for (i = 1; strcasecmp (label, tlabel) && (i < Nfields + 1); i++) {
-    sprintf (field, "TTYPE%d", i);
+    snprintf (field, 256, "TTYPE%d", i);
     gfits_scan (header, field, "%s", 1, tlabel);
   }
@@ -46,9 +46,9 @@
 
   /* interpret format */
-  sprintf (field, "TSCAL%d", N);
+  snprintf (field, 256, "TSCAL%d", N);
   gfits_scan (header, field, "%lf", 1, &Bscale);
-  sprintf (field, "TZERO%d", N);
+  snprintf (field, 256, "TZERO%d", N);
   gfits_scan (header, field, "%lf", 1, &Bzero);
-  sprintf (field, "TFORM%d", N);
+  snprintf (field, 256, "TFORM%d", N);
   gfits_scan (header, field, "%s", 1, format);
 
@@ -62,5 +62,5 @@
   Nstart = 0;
   for (i = 1; i < N; i++) {
-    sprintf (field, "TFORM%d", i);
+    snprintf (field, 256, "TFORM%d", i);
     gfits_scan (header, field, "%s", 1, format);
     gfits_bintable_format (format, tmpline, &Nv, &Nb);
@@ -145,9 +145,9 @@
 
   int Nbytes;
-  char field[80], format[80];
+  char field[256], format[256];
 
   assert (N > 0);
 
-  sprintf (field, "TFORM%d", N);
+  snprintf (field, 256, "TFORM%d", N);
   if (!gfits_scan (header, field, "%s", 1, format)) return FALSE;
   if (!gfits_bintable_format (format, type, Nval, &Nbytes)) return (FALSE);
@@ -159,5 +159,5 @@
 
   int i, N, Nfields;
-  char tlabel[80], field[80];
+  char tlabel[256], field[256];
 
   if (label == (char *) NULL) return (FALSE);
@@ -168,5 +168,5 @@
   gfits_scan (header, "TFIELDS", "%d", 1, &Nfields);
   for (i = 1; strcasecmp (label, tlabel) && (i < Nfields + 1); i++) {
-    sprintf (field, "TTYPE%d", i);
+    snprintf (field, 256, "TTYPE%d", i);
     gfits_scan (header, field, "%s", 1, tlabel);
   }
@@ -181,5 +181,5 @@
 int gfits_get_bintable_column_raw (Header *header, FTable *table, char *label, void **data, char nativeOrder) {
 
-  char type[16];
+  char type[64];
   off_t Nrow;
   int Ncol;
@@ -195,5 +195,5 @@
 int gfits_get_bintable_column (Header *header, FTable *table, char *label, void **data) {
 
-  char type[16];
+  char type[64];
   off_t Nrow;
   int Ncol;
@@ -229,5 +229,5 @@
 
   int i, N, Nfields, Nval, Nbytes;
-  char tlabel[80], field[80], format[80];
+  char tlabel[256], field[256], format[256];
 
   if (label == (char *) NULL) return (FALSE);
@@ -238,5 +238,5 @@
   gfits_scan (header, "TFIELDS", "%d", 1, &Nfields);
   for (i = 1; strcasecmp (label, tlabel) && (i < Nfields + 1); i++) {
-    sprintf (field, "TTYPE%d", i);
+    snprintf (field, 256, "TTYPE%d", i);
     gfits_scan (header, field, "%s", 1, tlabel);
   }
@@ -245,5 +245,5 @@
 
   /* interpret format */
-  sprintf (field, "TFORM%d", N);
+  snprintf (field, 256, "TFORM%d", N);
   gfits_scan (header, field, "%s", 1, format);
 
@@ -257,5 +257,5 @@
   off_t Nx, Ny;
   int i, N, Nfields, Nval, Nbytes, Nstart, Nv, Nb;
-  char tlabel[80], field[80], format[80], cformat[80], type[16], tmp[16];
+  char tlabel[256], field[256], format[256], cformat[256], type[64], tmp[64];
   char *array, *Pin, *Pout, *line;
 
@@ -268,5 +268,5 @@
   gfits_scan (header, "TFIELDS", "%d", 1, &Nfields);
   for (i = 1; strcasecmp (label, tlabel) && (i < Nfields + 1); i++) {
-    sprintf (field, "TTYPE%d", i);
+    snprintf (field, 256, "TTYPE%d", i);
     gfits_scan (header, field, "%s", 1, tlabel);
   }
@@ -275,5 +275,5 @@
 
   /* interpret format */
-  sprintf (field, "TFORM%d", N);
+  snprintf (field, 256, "TFORM%d", N);
   gfits_scan (header, field, "%s", 1, format);
 
@@ -288,5 +288,5 @@
   Nstart = 0;
   for (i = 1; i < N; i++) {
-    sprintf (field, "TFORM%d", i);
+    snprintf (field, 256, "TFORM%d", i);
     gfits_scan (header, field, "%s", 1, format);
     gfits_table_format (format, tmp, &Nv, &Nb);
Index: /branches/eam_branches/ipp-20150616/Ohana/src/libfits/table/F_set_column.c
===================================================================
--- /branches/eam_branches/ipp-20150616/Ohana/src/libfits/table/F_set_column.c	(revision 38526)
+++ /branches/eam_branches/ipp-20150616/Ohana/src/libfits/table/F_set_column.c	(revision 38527)
@@ -30,5 +30,5 @@
   int i, N, Nfields;
   int Nval, Nbytes, Nstart, Nv, Nb;
-  char tlabel[80], field[80], format[80], type[16], tmpline[16];
+  char tlabel[256], field[256], format[256], type[64], tmpline[64];
   char *Pin, *Pout, *array;
   double Bscale, Bzero;
@@ -41,5 +41,5 @@
   gfits_scan (header, "TFIELDS", "%d", 1, &Nfields);
   for (i = 1; strcasecmp (label, tlabel) && (i < Nfields + 1); i++) {
-    sprintf (field, "TTYPE%d", i);
+    snprintf (field, 256, "TTYPE%d", i);
     gfits_scan (header, field, "%s", 1, tlabel);
   }
@@ -48,13 +48,13 @@
 
   /* interpret format */
-  sprintf (field, "TSCAL%d", N);
+  snprintf (field, 256, "TSCAL%d", N);
   if (!gfits_scan (header, field, "%lf", 1, &Bscale)) {
     Bscale = 1.0;
   }
-  sprintf (field, "TZERO%d", N);
+  snprintf (field, 256, "TZERO%d", N);
   if (!gfits_scan (header, field, "%lf", 1, &Bzero)) {
     Bzero = 0.0;
   }
-  sprintf (field, "TFORM%d", N);
+  snprintf (field, 256, "TFORM%d", N);
   gfits_scan (header, field, "%s", 1, format);
 
@@ -75,5 +75,5 @@
   Nstart = 0;
   for (i = 1; i < N; i++) {
-    sprintf (field, "TFORM%d", i);
+    snprintf (field, 256, "TFORM%d", i);
     gfits_scan (header, field, "%s", 1, format);
     gfits_bintable_format (format, tmpline, &Nv, &Nb);
@@ -190,5 +190,5 @@
   int i, N, Nfields;
   int Nval, NbytesOut, Nstart, Nv, Nb;
-  char tlabel[80], field[80], format[80], outtype[16], tmpline[16];
+  char tlabel[256], field[256], format[256], outtype[64], tmpline[64];
   char *Pin, *Pout, *array;
   double Bscale, Bzero;
@@ -201,5 +201,5 @@
   gfits_scan (header, "TFIELDS", "%d", 1, &Nfields);
   for (i = 1; strcasecmp (label, tlabel) && (i < Nfields + 1); i++) {
-    sprintf (field, "TTYPE%d", i);
+    snprintf (field, 256, "TTYPE%d", i);
     gfits_scan (header, field, "%s", 1, tlabel);
   }
@@ -208,13 +208,13 @@
 
   /* interpret format */
-  sprintf (field, "TSCAL%d", N);
+  snprintf (field, 256, "TSCAL%d", N);
   if (!gfits_scan (header, field, "%lf", 1, &Bscale)) {
     Bscale = 1.0;
   }
-  sprintf (field, "TZERO%d", N);
+  snprintf (field, 256, "TZERO%d", N);
   if (!gfits_scan (header, field, "%lf", 1, &Bzero)) {
     Bzero = 0.0;
   }
-  sprintf (field, "TFORM%d", N);
+  snprintf (field, 256, "TFORM%d", N);
   gfits_scan (header, field, "%s", 1, format);
 
@@ -233,5 +233,5 @@
   Nstart = 0;
   for (i = 1; i < N; i++) {
-    sprintf (field, "TFORM%d", i);
+    snprintf (field, 256, "TFORM%d", i);
     gfits_scan (header, field, "%s", 1, format);
     gfits_bintable_format (format, tmpline, &Nv, &Nb);
@@ -780,5 +780,5 @@
   off_t Nx, Ny;
   int i, N, Nfields, Nval, Nbytes, Nstart, Nv, Nb;
-  char tlabel[80], field[80], format[80], cformat[80], type[16], tmp[16];
+  char tlabel[256], field[256], format[256], cformat[256], type[64], tmp[64];
   char *array, *Pin, *Pout, *line;
 
@@ -790,5 +790,5 @@
   gfits_scan (header, "TFIELDS", "%d", 1, &Nfields);
   for (i = 1; strcmp (label, tlabel) && (i < Nfields + 1); i++) {
-    sprintf (field, "TTYPE%d", i);
+    snprintf (field, 256, "TTYPE%d", i);
     gfits_scan (header, field, "%s", 1, tlabel);
   }
@@ -797,5 +797,5 @@
 
   /* interpret format */
-  sprintf (field, "TFORM%d", N);
+  snprintf (field, 256, "TFORM%d", N);
   gfits_scan (header, field, "%s", 1, format);
 
@@ -815,5 +815,5 @@
   Nstart = 0;
   for (i = 1; i < N; i++) {
-    sprintf (field, "TFORM%d", i);
+    snprintf (field, 256, "TFORM%d", i);
     gfits_scan (header, field, "%s", 1, format);
     gfits_table_format (format, tmp, &Nv, &Nb);
Index: /branches/eam_branches/ipp-20150616/Ohana/src/libfits/table/F_table_column.c
===================================================================
--- /branches/eam_branches/ipp-20150616/Ohana/src/libfits/table/F_table_column.c	(revision 38526)
+++ /branches/eam_branches/ipp-20150616/Ohana/src/libfits/table/F_table_column.c	(revision 38527)
@@ -6,5 +6,5 @@
 /* we expect one more field: the pointer to the array we read in */
 
-  char string[80], this_field[80], form[80], temp[80];
+  char string[256], this_field[256], form[256], temp[256];
   int i, j, N, start, end, width, M;
   va_list argp;
@@ -18,5 +18,5 @@
   /* find the correct field */
   for (i = 0; i < table[0].Nfields; i++) {
-    sprintf (string, "TTYPE%d\0", i+1);
+    snprintf (string, 256, "TTYPE%d\0", i+1);
     gfits_scan (&table[0].header, string, "%s", 1, this_field);
     if (!strcmp (field, this_field)) {
@@ -32,7 +32,7 @@
   N = i + 1;
 
-  sprintf (string, "TBCOL%d\0", N);
+  snprintf (string, 256, "TBCOL%d\0", N);
   gfits_scan (&table[0].header, string, "%d", 1, &start);
-  sprintf (string, "TFORM%d\0", N);
+  snprintf (string, 256, "TFORM%d\0", N);
   gfits_scan (&table[0].header, string, "%s", 1, form);
   /* we could use some error checking from the FITS table form, but
@@ -42,5 +42,5 @@
     end = table[0].Naxis[0];
   } else {
-    sprintf (string, "TBCOL%d\0", N+1);
+    snprintf (string, 256, "TBCOL%d\0", N+1);
     gfits_scan (&table[0].header, string, "%d", 1, &end);
   }
Index: /branches/eam_branches/ipp-20150616/Ohana/src/libfits/table/F_table_format.c
===================================================================
--- /branches/eam_branches/ipp-20150616/Ohana/src/libfits/table/F_table_format.c	(revision 38526)
+++ /branches/eam_branches/ipp-20150616/Ohana/src/libfits/table/F_table_format.c	(revision 38527)
@@ -113,4 +113,6 @@
   if (!*Nbytes) { return (FALSE); }
   
+  // XXXX : check usage:
+  myAbort ("need to check length");
   sprintf (format, "%%-%s%c", Size, Type);
 
@@ -191,5 +193,5 @@
   off_t Nx, off;
   int i, Nchar, Nval, Nbytes, Nfields;
-  char *line, format[64], field[16], type[16];
+  char *line, format[64], field[64], type[64];
   va_list argp;
   
@@ -204,5 +206,5 @@
   for (i = 1; i <= Nfields; i++) {
 
-    sprintf (field, "TFORM%d", i);
+    snprintf (field, 64, "TFORM%d", i);
     gfits_scan (table[0].header, field, "%s", 1, format);       /* get field format */
     gfits_table_format (format, type, &Nval, &Nbytes); /* convert to c-style */
@@ -232,5 +234,5 @@
   int i, j, n, Nfields;
   int Nchar, Nval, Nbytes, status;
-  char format[64], field[16], type[16];
+  char format[64], field[64], type[64];
   double tzero, tscale;
   char *tmpChar;
@@ -246,10 +248,10 @@
 
   for (i = 1; i <= Nfields; i++) {
-    sprintf (field, "TFORM%d", i);
+    snprintf (field, 64, "TFORM%d", i);
     gfits_scan (ftable[0].header, field, "%s", 1, format);       /* get field format */
     gfits_bintable_format (format, type, &Nval, &Nbytes); /* convert to c-style */
     Nchar = Nval * Nbytes;
 
-    sprintf (field, "TZERO%d", i);
+    snprintf (field, 64, "TZERO%d", i);
     status = gfits_scan (ftable[0].header, field, "%lf", 1, &tzero);       /* get field format */
     if (!status) {
@@ -258,5 +260,5 @@
     }
 
-    sprintf (field, "TSCAL%d", i);
+    snprintf (field, 64, "TSCAL%d", i);
     status = gfits_scan (ftable[0].header, field, "%lf", 1, &tscale);       /* get field format */
     if (!status) {
@@ -325,5 +327,5 @@
   int i, j, n, Nfields;
   int Nchar, Nval, Nbytes, status;
-  char format[64], field[16], type[16];
+  char format[64], field[64], type[64];
   double tzero, tscale;
   char *tmpChar;
@@ -339,10 +341,10 @@
 
   for (i = 1; i <= Nfields; i++) {
-    sprintf (field, "TFORM%d", i);
+    snprintf (field, 64, "TFORM%d", i);
     gfits_scan (ftable[0].header, field, "%s", 1, format);       /* get field format */
     gfits_bintable_format (format, type, &Nval, &Nbytes); /* convert to c-style */
     Nchar = Nval * Nbytes;
 
-    sprintf (field, "TZERO%d", i);
+    snprintf (field, 64, "TZERO%d", i);
     status = gfits_scan (ftable[0].header, field, "%lf", 1, &tzero);       /* get field format */
     if (!status) {
@@ -351,5 +353,5 @@
     }
 
-    sprintf (field, "TSCAL%d", i);
+    snprintf (field, 64, "TSCAL%d", i);
     status = gfits_scan (ftable[0].header, field, "%lf", 1, &tscale);       /* get field format */
     if (!status) {
Index: /branches/eam_branches/ipp-20150616/Ohana/src/libfits/table/F_table_varlength.c
===================================================================
--- /branches/eam_branches/ipp-20150616/Ohana/src/libfits/table/F_table_varlength.c	(revision 38526)
+++ /branches/eam_branches/ipp-20150616/Ohana/src/libfits/table/F_table_varlength.c	(revision 38527)
@@ -8,7 +8,7 @@
   int Nv, Nb;
   char *p1, *p2, *p3;
-  char field[81];
-  char format[81];
-  char tmpline[81];
+  char field[256];
+  char format[256];
+  char tmpline[256];
 
   // grab the value of TFORMn for this column
@@ -61,5 +61,5 @@
   def->offset = 0;
   for (i = 1; i < column; i++) {
-    sprintf (field, "TFORM%d", i);
+    snprintf (field, 256, "TFORM%d", i);
     gfits_scan (ftable->header, field, "%s", 1, format);
     gfits_bintable_format (format, tmpline, &Nv, &Nb);
Index: /branches/eam_branches/ipp-20150616/Ohana/src/libfits/table/F_uncompress_T.c
===================================================================
--- /branches/eam_branches/ipp-20150616/Ohana/src/libfits/table/F_uncompress_T.c	(revision 38526)
+++ /branches/eam_branches/ipp-20150616/Ohana/src/libfits/table/F_uncompress_T.c	(revision 38527)
@@ -78,8 +78,9 @@
   int i;
 
-  char keyword[81];
+  char keyword[256];
 
   char *raw = NULL;
   char *zdata = NULL;
+  TableField *fields = NULL;
 
   Header *srcheader = srctable->header;
@@ -111,5 +112,4 @@
   int offset = 0;
 
-  TableField *fields = NULL;
   ALLOCATE (fields, TableField, Nfields);
   for (i = 0; i < Nfields; i++) {
@@ -336,4 +336,5 @@
   free (raw);
   free (zdata);
+  free (fields);
   return (TRUE);
 
@@ -341,4 +342,5 @@
   FREE (raw);
   FREE (zdata);
+  FREE (fields);
   return FALSE;
 }
