[PD-cvs] externals/iem/iemmatrix/src mtx_matrix.c,1.5,1.6
IOhannes m zmölnig
zmoelnig at users.sourceforge.net
Tue Jul 25 16:13:30 CEST 2006
Update of /cvsroot/pure-data/externals/iem/iemmatrix/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24664
Modified Files:
mtx_matrix.c
Log Message:
hopefully made it a bit more secure...
Index: mtx_matrix.c
===================================================================
RCS file: /cvsroot/pure-data/externals/iem/iemmatrix/src/mtx_matrix.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** mtx_matrix.c 29 Mar 2006 12:07:52 -0000 1.5
--- mtx_matrix.c 25 Jul 2006 14:13:28 -0000 1.6
***************
*** 19,22 ****
--- 19,27 ----
#include "iemmatrix.h"
+ #include <stdio.h>
+ #ifdef _WIN32
+ /* or should we use the security enhanced _snprintf_s() ?? */
+ # define snprintf _snprintf
+ #endif
/* -------------------- matrix ------------------------------ */
***************
*** 443,447 ****
if (binbuf_read_via_path(bbuf, filename->s_name, canvas_getdir(x->x_canvas)->s_name, 0))
! pd_error(x,"matrix: failed to read %s", filename->s_name);
ap=binbuf_getvec(bbuf);
--- 448,452 ----
if (binbuf_read_via_path(bbuf, filename->s_name, canvas_getdir(x->x_canvas)->s_name, 0))
! pd_error(x,"matrix: failed to read %128s", filename->s_name);
ap=binbuf_getvec(bbuf);
***************
*** 458,462 ****
{
t_atom *ap=x->atombuffer+2;
! char filnam[MAXPDSTRING];
int rows = x->row, cols = x->col;
FILE *f=0;
--- 463,467 ----
{
t_atom *ap=x->atombuffer+2;
! char *filnam = (char*)getbytes(sizeof(char)*MAXPDSTRING);;
int rows = x->row, cols = x->col;
FILE *f=0;
***************
*** 466,470 ****
/* open file */
if (!(f = fopen(filnam, "w"))) {
! pd_error(x,"matrix : failed to open %s", filnam);
} else {
char *text=(char *)getbytes(sizeof(char)*MAXPDSTRING);
--- 471,475 ----
/* open file */
if (!(f = fopen(filnam, "w"))) {
! pd_error(x,"matrix : failed to open %128s", filnam);
} else {
char *text=(char *)getbytes(sizeof(char)*MAXPDSTRING);
***************
*** 476,483 ****
* applications such as octave
*/
! sprintf(text, "#matrix %d %d\n", rows, cols);
textlen = strlen(text);
if (fwrite(text, textlen*sizeof(char), 1, f) < 1) {
! pd_error(x,"matrix : failed to write %s", filnam); goto end;
}
--- 481,489 ----
* applications such as octave
*/
! snprintf(text, MAXPDSTRING, "#matrix %d %d\n", rows, cols);
! text[MAXPDSTRING-1]=0;
textlen = strlen(text);
if (fwrite(text, textlen*sizeof(char), 1, f) < 1) {
! pd_error(x,"matrix : failed to write %128s", filnam); goto end;
}
***************
*** 486,497 ****
while (c--) {
t_float val = atom_getfloat(ap++);
! sprintf(text, "%.15f ", val);
textlen=strlen(text);
if (fwrite(text, textlen*sizeof(char), 1, f) < 1) {
! pd_error(x,"matrix : failed to write %s", filnam); goto end;
}
}
if (fwrite("\n", sizeof(char), 1, f) < 1) {
! pd_error(x, "matrix : failed to write %s", filnam); goto end;
}
}
--- 492,504 ----
while (c--) {
t_float val = atom_getfloat(ap++);
! snprintf(text, MAXPDSTRING, "%.15f ", val);
! text[MAXPDSTRING-1]=0;
textlen=strlen(text);
if (fwrite(text, textlen*sizeof(char), 1, f) < 1) {
! pd_error(x,"matrix : failed to write %128s", filnam); goto end;
}
}
if (fwrite("\n", sizeof(char), 1, f) < 1) {
! pd_error(x, "matrix : failed to write %128s", filnam); goto end;
}
}
***************
*** 502,505 ****
--- 509,513 ----
/* close file */
if (f) fclose(f);
+ if(filnam)freebytes(filnam, sizeof(char)*MAXPDSTRING);
}
More information about the Pd-cvs
mailing list