From 7c8f22ff5645be54b6162c2bc64ee82adac85b76 Mon Sep 17 00:00:00 2001 From: Morgan Aldridge Date: Fri, 25 Dec 2020 20:18:00 -0500 Subject: [PATCH] Convert sprintf()s to snprintf()s. Issue #6 --- mlvwm/balloon.c | 5 +++-- mlvwm/balloon.h | 2 ++ mlvwm/borders.c | 6 ++++-- mlvwm/config.c | 11 +++++++---- mlvwm/event.c | 6 ++++-- mlvwm/misc.c | 25 ++++++++++++++++--------- mlvwm/mlvwm.c | 4 ++-- 7 files changed, 38 insertions(+), 21 deletions(-) diff --git a/mlvwm/balloon.c b/mlvwm/balloon.c index adb9117..93b0f07 100644 --- a/mlvwm/balloon.c +++ b/mlvwm/balloon.c @@ -13,6 +13,7 @@ #include "screen.h" #include "misc.h" #include "event.h" +#include "balloon.h" #include @@ -156,7 +157,7 @@ void ShapeBalloon( int fx, int fy, int xoff, int yoff, int woff, int hoff, int w void BalloonSize( int *lh, int *lw, int *offset, int *w, int *h, MlvwmWindow *mw ) { int lp; - char contents[256]; + char contents[MAX_BALLOON_STR_LEN]; int contents_width=0, strw, strh; int xinc, yinc; @@ -223,7 +224,7 @@ void BalloonSize( int *lh, int *lw, int *offset, int *w, int *h, MlvwmWindow *mw void DrawWindowBalloon( int xoff, int yoff, int lh, int offset, int lw, MlvwmWindow *mw ) { int lp; - char contents[255]; + char contents[MAX_BALLOON_STR_LEN]; int xinc, yinc; for( lp=0; WinLabel[lp]!=NULL; lp++ ){ diff --git a/mlvwm/balloon.h b/mlvwm/balloon.h index a819f61..bdffa23 100644 --- a/mlvwm/balloon.h +++ b/mlvwm/balloon.h @@ -8,5 +8,7 @@ #ifndef _BALLOON_ #define _BALLOON_ +#define MAX_BALLOON_STR_LEN 255 + extern void BalloonHelp( void ); #endif /* _BALLOON_ */ diff --git a/mlvwm/borders.c b/mlvwm/borders.c index 122e376..446f4d2 100644 --- a/mlvwm/borders.c +++ b/mlvwm/borders.c @@ -966,6 +966,7 @@ void DrawAllDecorations( MlvwmWindow *t, Bool on_off ) void SetFocus( MlvwmWindow *t ) { char *str, action[24], *winname; + size_t str_size; unsigned long mask, valuemask; XSetWindowAttributes attributes; XGCValues xgcv; @@ -1016,8 +1017,9 @@ void SetFocus( MlvwmWindow *t ) ChangeMenuLabel( &(Scr.IconMenu), NULL, t->miniicon==NULL?Scr.SystemIcon:t->miniicon ); if( !(t->flags&TRANSIENT) ){ - str = calloc( strlen(t->name)+6, 1 ); - sprintf( str, "Hide %s", t->name ); + str_size = strlen(t->name)+6; + str = calloc( str_size, 1 ); + snprintf( str, str_size, "Hide %s", t->name ); ChangeMenuItemLabel( "ICON", Scr.IconMenu.m_item->label, str, NULL, SELECTON, M_COPY ); ChangeMenuItemLabel( "ICON", "Hide Others", "Hide Others", diff --git a/mlvwm/config.c b/mlvwm/config.c index 1574c49..842b065 100644 --- a/mlvwm/config.c +++ b/mlvwm/config.c @@ -761,6 +761,7 @@ void ReadConfigFile( char *configfile ) int lp; #ifdef MLVWMLIBDIR char *sysrc; + size_t sysrc_size; #endif if( (file = LookUpFiles( NULL, configfile, R_OK ))==NULL ) @@ -768,12 +769,14 @@ void ReadConfigFile( char *configfile ) #ifdef MLVWMLIBDIR if( !file ){ if( strcmp( configfile, CONFIGNAME) ){ - sysrc = calloc( strlen(MLVWMLIBDIR)+strlen(configfile)+2, 1 ); - sprintf( sysrc, "%s/%s", MLVWMLIBDIR, configfile ); + sysrc_size = strlen(MLVWMLIBDIR)+strlen(configfile)+2; + sysrc = calloc( sysrc_size, 1 ); + snprintf( sysrc, sysrc_size, "%s/%s", MLVWMLIBDIR, configfile ); } else{ - sysrc = calloc( strlen(MLVWMLIBDIR)+strlen(configfile)+9, 1 ); - sprintf( sysrc, "%s/system%s", MLVWMLIBDIR, configfile ); + sysrc_size = strlen(MLVWMLIBDIR)+strlen(configfile)+9; + sysrc = calloc( sysrc_size, 1 ); + snprintf( sysrc, sysrc_size, "%s/system%s", MLVWMLIBDIR, configfile ); } file = LookUpFiles( NULL, sysrc, R_OK ); free( sysrc ); diff --git a/mlvwm/event.c b/mlvwm/event.c index c180fb9..a445e92 100644 --- a/mlvwm/event.c +++ b/mlvwm/event.c @@ -1596,6 +1596,7 @@ void handle_property_request( XEvent *ev ) XTextProperty text_prop; unsigned int JunkWidth, JunkHeight, JunkBW, JunkDepth; char desk[8], *str, action[24]; + size_t str_size; #ifdef USE_LOCALE int num; char **list; @@ -1640,8 +1641,9 @@ void handle_property_request( XEvent *ev ) ChangeMenuItemLabel( "ICON", oldWinName, winname, action, M_ALLSET, M_AND ); if( tmp_win==Scr.ActiveWin ){ - str = calloc( strlen( tmp_win->name )+6, 1 ); - sprintf( str, "Hide %s", tmp_win->name ); + str_size = strlen(tmp_win->name)+6; + str = calloc( str_size, 1 ); + snprintf( str, str_size, "Hide %s", tmp_win->name ); ChangeMenuItemLabel( "ICON", Scr.IconMenu.m_item->label, str, NULL, SELECTON, M_COPY ); free( str ); diff --git a/mlvwm/misc.c b/mlvwm/misc.c index a79ef6a..188bdde 100644 --- a/mlvwm/misc.c +++ b/mlvwm/misc.c @@ -43,7 +43,8 @@ char *fgetline( char *str, int size, FILE *fp ) char *LookUpFiles( char *path, char *filename, int mode ) { - char *find; + char *find, *separator; + size_t find_size; if( !access( filename, mode ) ){ find = strdup( filename ); @@ -52,14 +53,16 @@ char *LookUpFiles( char *path, char *filename, int mode ) if( path==NULL ) return NULL; do{ path=SkipSpace( path ); - find = calloc( strlen(path)+strlen(filename)+2, 1 ); + find_size = strlen(path)+strlen(filename)+2; + find = calloc( find_size, 1 ); if( strchr( path, ':' )==NULL ){ - sprintf( find, "%s/%s", path, filename ); + snprintf( find, find_size, "%s/%s", path, filename ); path += strlen( path ); } else{ strcpy( find, path ); - sprintf( strchr( find, ':' ), "/%s", filename ); + separator = strchr( find, ':' ); + snprintf( separator, strlen(separator)+strlen(filename)+2, "/%s", filename ); path = strchr( path, ':') + 1; } if( !access(find, mode ) ){ @@ -120,12 +123,14 @@ void sleep_a_little(int n) void DrawErrMsgOnMenu( char *str1, char *str2 ) { char *str; + size_t str_size; static int call=0; int wait_s; call++; - str = calloc( strlen(str1)+strlen(str2)+1, 1 ); - sprintf( str, "%s%s", str1, str2 ); + str_size = strlen(str1)+strlen(str2)+1; + str = calloc( str_size, 1 ); + snprintf( str, str_size, "%s%s", str1, str2 ); if( call<5 ) XBell( dpy, 30 ); DrawStringMenuBar( str ); wait_s = 3000000-call/5*500000; @@ -274,13 +279,15 @@ void RaiseMlvwmWindow( MlvwmWindow *win ) char *WinListName( MlvwmWindow *mw ) { char *winname; + size_t winname_size; - winname = calloc( strlen( mw->name )+1+(Scr.flags&DISPDESK?3:0), 1 ); + winname_size = strlen( mw->name )+1+(Scr.flags&DISPDESK?3:0); + winname = calloc( winname_size, 1 ); if( Scr.flags&DISPDESK ){ if( mw->flags&STICKY ) - sprintf( winname, "S:%s", mw->name ); + snprintf( winname, winname_size, "S:%s", mw->name ); else - sprintf( winname, "%d:%s", mw->Desk, mw->name ); + snprintf( winname, winname_size, "%d:%s", mw->Desk, mw->name ); } else strcpy( winname, mw->name ); diff --git a/mlvwm/mlvwm.c b/mlvwm/mlvwm.c index f932257..84b837e 100644 --- a/mlvwm/mlvwm.c +++ b/mlvwm/mlvwm.c @@ -614,7 +614,7 @@ int main( int argc, char *argv[] ) if(!single){ for(lp=0;lp