SECURITY: (GID games)
Prevent buffer overflow from environment variable; from Debian.
This commit is contained in:
parent
e5f65fcb14
commit
ec03d9af91
@ -1,9 +1,9 @@
|
|||||||
# $OpenBSD: Makefile,v 1.5 2003/12/18 03:56:19 naddy Exp $
|
# $OpenBSD: Makefile,v 1.6 2004/03/02 22:18:53 naddy Exp $
|
||||||
|
|
||||||
COMMENT= "breakout game with many levels, powerups, good graphics"
|
COMMENT= "breakout game with many levels, powerups, good graphics"
|
||||||
|
|
||||||
VERSION= 2.2.2
|
DISTNAME= lbreakout2-2.2.2
|
||||||
DISTNAME= lbreakout2-${VERSION}
|
PKGNAME= ${DISTNAME}p0
|
||||||
CATEGORIES= games x11
|
CATEGORIES= games x11
|
||||||
|
|
||||||
HOMEPAGE= http://lgames.sourceforge.net/index.php?action=show_project&project=LBreakout2
|
HOMEPAGE= http://lgames.sourceforge.net/index.php?action=show_project&project=LBreakout2
|
||||||
@ -28,8 +28,4 @@ CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include/libpng" \
|
|||||||
USE_X11= Yes
|
USE_X11= Yes
|
||||||
USE_GMAKE= Yes
|
USE_GMAKE= Yes
|
||||||
|
|
||||||
# avoid triggering aclocal/automake
|
|
||||||
post-patch:
|
|
||||||
@touch -r ${WRKSRC}/aclocal.m4 ${WRKSRC}/configure.in
|
|
||||||
|
|
||||||
.include <bsd.port.mk>
|
.include <bsd.port.mk>
|
||||||
|
12
games/lbreakout2/patches/patch-src_config_c
Normal file
12
games/lbreakout2/patches/patch-src_config_c
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
$OpenBSD: patch-src_config_c,v 1.1 2004/03/02 22:18:53 naddy Exp $
|
||||||
|
--- src/config.c.orig 2002-02-22 12:58:37.000000000 +0100
|
||||||
|
+++ src/config.c 2004-03-02 21:55:07.000000000 +0100
|
||||||
|
@@ -40,7 +40,7 @@ Config config;
|
||||||
|
void config_check_dir()
|
||||||
|
{
|
||||||
|
char level_dir[512];
|
||||||
|
- sprintf( config.dir_name, "%s/%s", (getenv( "HOME" )?getenv( "HOME" ):"."), CONFIG_DIR_NAME );
|
||||||
|
+ snprintf( config.dir_name, sizeof(config.dir_name), "%s/%s", (getenv( "HOME" )?getenv( "HOME" ):"."), CONFIG_DIR_NAME );
|
||||||
|
/* test and create .lgames */
|
||||||
|
if ( opendir( config.dir_name ) == 0 ) {
|
||||||
|
fprintf( stderr, "couldn't find/open config directory '%s'\n", config.dir_name );
|
12
games/lbreakout2/patches/patch-src_editor_c
Normal file
12
games/lbreakout2/patches/patch-src_editor_c
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
$OpenBSD: patch-src_editor_c,v 1.1 2004/03/02 22:18:53 naddy Exp $
|
||||||
|
--- src/editor.c.orig 2002-02-22 12:59:28.000000000 +0100
|
||||||
|
+++ src/editor.c 2004-03-02 21:55:07.000000000 +0100
|
||||||
|
@@ -725,7 +725,7 @@ int editor_init( char *file_name )
|
||||||
|
{
|
||||||
|
FILE *file = 0;
|
||||||
|
/* set full file name */
|
||||||
|
- sprintf( edit_file_name, "%s/%s/lbreakout2-levels/%s", (getenv( "HOME" )?getenv( "HOME" ):"."), CONFIG_DIR_NAME, file_name );
|
||||||
|
+ snprintf( edit_file_name, sizeof(edit_file_name), "%s/%s/lbreakout2-levels/%s", (getenv( "HOME" )?getenv( "HOME" ):"."), CONFIG_DIR_NAME, file_name );
|
||||||
|
/* test this file for write access. use append to keep contents */
|
||||||
|
if ( ( file = fopen( edit_file_name, "a" ) ) == 0 ) {
|
||||||
|
fprintf( stderr, "Permission to write to file '%s' denied.\n", edit_file_name );
|
12
games/lbreakout2/patches/patch-src_game_c
Normal file
12
games/lbreakout2/patches/patch-src_game_c
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
$OpenBSD: patch-src_game_c,v 1.1 2004/03/02 22:18:53 naddy Exp $
|
||||||
|
--- src/game.c.orig 2002-02-22 13:00:24.000000000 +0100
|
||||||
|
+++ src/game.c 2004-03-02 21:55:07.000000000 +0100
|
||||||
|
@@ -561,7 +561,7 @@ int game_init()
|
||||||
|
/* load level */
|
||||||
|
setname = levelset_names[config.levelset_id];
|
||||||
|
if ( levelset_names[config.levelset_id][0] == '~' ) {
|
||||||
|
- sprintf( path, "%s/%s/lbreakout2-levels", (getenv( "HOME" )?getenv( "HOME" ):"."), CONFIG_DIR_NAME );
|
||||||
|
+ snprintf( path, sizeof(path), "%s/%s/lbreakout2-levels", (getenv( "HOME" )?getenv( "HOME" ):"."), CONFIG_DIR_NAME );
|
||||||
|
setname++;
|
||||||
|
}
|
||||||
|
else
|
12
games/lbreakout2/patches/patch-src_levels_c
Normal file
12
games/lbreakout2/patches/patch-src_levels_c
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
$OpenBSD: patch-src_levels_c,v 1.1 2004/03/02 22:18:53 naddy Exp $
|
||||||
|
--- src/levels.c.orig 2002-02-22 13:00:43.000000000 +0100
|
||||||
|
+++ src/levels.c 2004-03-02 21:55:07.000000000 +0100
|
||||||
|
@@ -220,7 +220,7 @@ void levelsets_load_names()
|
||||||
|
/* create dynamic list */
|
||||||
|
names = list_create( LIST_NO_AUTO_DELETE, NO_CALLBACK );
|
||||||
|
/* parse home directory */
|
||||||
|
- sprintf( level_dir, "%s/%s/lbreakout2-levels", (getenv( "HOME" )?getenv( "HOME" ):"."), CONFIG_DIR_NAME );
|
||||||
|
+ snprintf( level_dir, sizeof(level_dir), "%s/%s/lbreakout2-levels", (getenv( "HOME" )?getenv( "HOME" ):"."), CONFIG_DIR_NAME );
|
||||||
|
text = get_file_list( level_dir, 0, level_dir );
|
||||||
|
for ( i = 0; i < text->count; i++ ) {
|
||||||
|
/* filter stuff */
|
12
games/lbreakout2/patches/patch-src_main_c
Normal file
12
games/lbreakout2/patches/patch-src_main_c
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
$OpenBSD: patch-src_main_c,v 1.1 2004/03/02 22:18:53 naddy Exp $
|
||||||
|
--- src/main.c.orig 2002-02-22 13:02:01.000000000 +0100
|
||||||
|
+++ src/main.c 2004-03-02 21:55:07.000000000 +0100
|
||||||
|
@@ -106,7 +106,7 @@ int main(int argc, char *argv[])
|
||||||
|
/* new set? */
|
||||||
|
if ( strequal( "<CREATE SET>", levelset_home_names[config.levelset_home_id] ) ) {
|
||||||
|
editor_file = calloc( 16, sizeof( char ) );
|
||||||
|
- sprintf( path, "%s/%s/lbreakout2-levels", getenv( "HOME" ), CONFIG_DIR_NAME );
|
||||||
|
+ snprintf( path, sizeof(path), "%s/%s/lbreakout2-levels", getenv( "HOME" ), CONFIG_DIR_NAME );
|
||||||
|
if ( !enter_string( font, "Set Name:", editor_file, 12 ) || !file_check( path, editor_file, "w" ) ) {
|
||||||
|
free( editor_file );
|
||||||
|
break;
|
12
games/lbreakout2/patches/patch-src_manager_c
Normal file
12
games/lbreakout2/patches/patch-src_manager_c
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
$OpenBSD: patch-src_manager_c,v 1.1 2004/03/02 22:18:53 naddy Exp $
|
||||||
|
--- src/manager.c.orig 2002-02-16 15:06:24.000000000 +0100
|
||||||
|
+++ src/manager.c 2004-03-02 21:55:07.000000000 +0100
|
||||||
|
@@ -126,7 +126,7 @@ void cb_delete_set()
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
/* get file name + path */
|
||||||
|
- sprintf( fname, "%s/%s/lbreakout2-levels/%s", getenv( "HOME" ), CONFIG_DIR_NAME, levelset_home_names[config.levelset_home_id] );
|
||||||
|
+ snprintf( fname, sizeof(fname), "%s/%s/lbreakout2-levels/%s", getenv( "HOME" ), CONFIG_DIR_NAME, levelset_home_names[config.levelset_home_id] );
|
||||||
|
remove( fname );
|
||||||
|
levelsets_load_names(); /* reinit name lists and configs indices */
|
||||||
|
/* reassign these name lists as position in memory has changed */
|
57
games/lbreakout2/patches/patch-src_theme_c
Normal file
57
games/lbreakout2/patches/patch-src_theme_c
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
$OpenBSD: patch-src_theme_c,v 1.1 2004/03/02 22:18:53 naddy Exp $
|
||||||
|
--- src/theme.c.orig 2002-02-19 15:12:22.000000000 +0100
|
||||||
|
+++ src/theme.c 2004-03-02 21:55:07.000000000 +0100
|
||||||
|
@@ -115,7 +115,7 @@ SDL_Surface* theme_load_surf( char *name
|
||||||
|
{
|
||||||
|
SDL_Surface *surf = 0;
|
||||||
|
char path[512];
|
||||||
|
- sprintf( path, "%s/.lgames/lbreakout2-themes/%s/%s", getenv( "HOME" ), theme_name, name );
|
||||||
|
+ snprintf( path, sizeof(path), "%s/.lgames/lbreakout2-themes/%s/%s", getenv( "HOME" ), theme_name, name );
|
||||||
|
if ( strequal( theme_name, "Default" ) || ( surf = load_surf( path, SDL_SWSURFACE | SDL_NONFATAL ) ) == 0 )
|
||||||
|
surf = load_surf( name, SDL_SWSURFACE );
|
||||||
|
return surf;
|
||||||
|
@@ -125,7 +125,7 @@ Sound_Chunk* theme_load_sound( char *nam
|
||||||
|
{
|
||||||
|
Sound_Chunk *sound = 0;
|
||||||
|
char path[512];
|
||||||
|
- sprintf( path, "%s/.lgames/lbreakout2-themes/%s/%s", getenv( "HOME" ), theme_name, name );
|
||||||
|
+ snprintf( path, sizeof(path), "%s/.lgames/lbreakout2-themes/%s/%s", getenv( "HOME" ), theme_name, name );
|
||||||
|
if ( strequal( theme_name, "Default" ) || ( sound = sound_chunk_load( path ) ) == 0 )
|
||||||
|
sound = sound_chunk_load( name );
|
||||||
|
return sound;
|
||||||
|
@@ -135,7 +135,7 @@ Font* theme_load_font_fixed( char *name,
|
||||||
|
{
|
||||||
|
Font *font = 0;
|
||||||
|
char path[512];
|
||||||
|
- sprintf( path, "%s/.lgames/lbreakout2-themes/%s/%s", getenv( "HOME" ), theme_name, name );
|
||||||
|
+ snprintf( path, sizeof(path), "%s/.lgames/lbreakout2-themes/%s/%s", getenv( "HOME" ), theme_name, name );
|
||||||
|
if ( strequal( theme_name, "Default" ) || ( font = load_fixed_font( path, start, len, width, SDL_SWSURFACE | SDL_NONFATAL ) ) == 0 )
|
||||||
|
font = load_fixed_font( name, start, len, width, SDL_SWSURFACE );
|
||||||
|
return font;
|
||||||
|
@@ -201,7 +201,7 @@ void theme_load_bkgnds()
|
||||||
|
struct stat filestat;
|
||||||
|
char path[512];
|
||||||
|
char fname[512];
|
||||||
|
- sprintf( fname, "%s/.lgames/lbreakout2-themes/%s/back0.png", getenv( "HOME" ), theme_name );
|
||||||
|
+ snprintf( fname, sizeof(path), "%s/.lgames/lbreakout2-themes/%s/back0.png", getenv( "HOME" ), theme_name );
|
||||||
|
if ( strequal( theme_name, "Default" ) || stat( fname, &filestat ) == -1 ) {
|
||||||
|
/* use original backs */
|
||||||
|
bkgnd_count = BACK_COUNT;
|
||||||
|
@@ -209,7 +209,7 @@ void theme_load_bkgnds()
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
/* use new backs */
|
||||||
|
- sprintf( path, "%s/.lgames/lbreakout2-themes/%s", getenv( "HOME" ), theme_name );
|
||||||
|
+ snprintf( path, sizeof(path), "%s/.lgames/lbreakout2-themes/%s", getenv( "HOME" ), theme_name );
|
||||||
|
bkgnd_count = -1;
|
||||||
|
do {
|
||||||
|
bkgnd_count++;
|
||||||
|
@@ -248,7 +248,7 @@ void theme_get_list()
|
||||||
|
/* auxilary list */
|
||||||
|
list = list_create( LIST_NO_AUTO_DELETE, NO_CALLBACK );
|
||||||
|
/* theme directory */
|
||||||
|
- sprintf( dir, "%s/.lgames/lbreakout2-themes", getenv( "HOME" ) );
|
||||||
|
+ snprintf( dir, sizeof(dir), "%s/.lgames/lbreakout2-themes", getenv( "HOME" ) );
|
||||||
|
if ( ( hdir = opendir( dir ) ) != 0 ) {
|
||||||
|
while ( ( entry = readdir( hdir ) ) ) {
|
||||||
|
if ( entry->d_name[0] == '.' )
|
Loading…
Reference in New Issue
Block a user