[Kst] [Bug 142420] kst data wizard crashes with sigabrt on certain file names

netterfield at astro.utoronto.ca netterfield at astro.utoronto.ca
Wed Mar 28 20:39:27 CEST 2007


------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
         
http://bugs.kde.org/show_bug.cgi?id=142420         
netterfield astro utoronto ca changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |FIXED



------- Additional Comments From netterfield astro utoronto ca  2007-03-28 20:39 -------
SVN commit 647569 by netterfield:

BUG: 142420
strcpy -> strncpy 



 M  +4 -3      creaddata.c  
 M  +3 -2      readdata.c  


--- trunk/extragear/graphics/kst/src/datasources/frame/creaddata.c #647568:647569
 @ -24,6 +24,7  @
 #define MAX_LINE_LENGTH 120
 #define MAX_FIELDS_IN_CFORMAT 500
 #define MAX_LINCOM_ENTRIES 4
+#define MAX_FILENAMELEN 256
 
 #ifndef CALSPECS_DIR
 #define CALSPECS_DIR "/data/etc"
 @ -838,7 +839,7  @
   int i_format, i_field, i_lincom;
   int s_per_frame;
   static int first_time=1;
-  char filename[100], tmpfilename[100];
+  char filename[MAX_FILENAMELEN], tmpfilename[MAX_FILENAMELEN];
   int i, n_read;
   void *tmpbuf;
   int *mp_cnt=NULL, *mp_data, cp_data;
 @ -852,7 +853,7  @
     return(0);
   }
 
-  strcpy(filename, filename_in);
+  strncpy(filename, filename_in, MAX_FILENAMELEN-2);
 
   if (first_time) {
     *error_code = ReadCalFile();
 @ -900,7 +901,7  @
     /* Find t0 from the file creation time */
     t0 = FindT0(filename_in,  cstruct[i_format].field[i_field].framerate);
     /* Find f0 from reading the first frame val */
-    strcpy(tmpfilename, filename);
+    strncpy(tmpfilename, filename, MAX_FILENAMELEN-2);
     tmpfilename[strlen(tmpfilename)-2] = '0';
     tmpfilename[strlen(tmpfilename)-1] = '0';
 
--- trunk/extragear/graphics/kst/src/datasources/frame/readdata.c #647568:647569
 @ -27,6 +27,7  @
 #include "readdata.h"
 #define MAX_LINE_LENGTH 120
 #define MAX_FIELDS_IN_FORMAT 500
+#define MAX_FILENAMELEN 256
 
 #ifndef FILEFORMATS_DIR
 #define FILEFORMATS_DIR "/data/etc"
 @ -782,9 +783,9  @
   char done='n';
   unsigned char *data_buffer;
   int fp;
-  char filename[100];
+  char filename[MAX_FILENAMELEN];
 
-  strcpy(filename, filename_in);
+  strncpy(filename, filename_in, MAX_FILENAMELEN-2);
 
   /****************************/
   /* Read the FileFormat file */


More information about the Kst mailing list