You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/app-admin/lsat/files/lsat-0.9.7.1-segfault-fix.p...

46 lines
1.7 KiB

--- lsat-0.9.7.1/lsatmain.c.orig 2008-12-29 11:09:04.000000000 -0500
+++ lsat-0.9.7.1/lsatmain.c 2008-12-29 13:31:00.000000000 -0500
@@ -232,7 +232,7 @@ int versions(char release[], char kernel
} /* end while (fgets...) */
close(fileval);
/* clean up even though we will rm it */
- close(infile);
+ close((int)infile);
if ( (system("rm -f /tmp/lsat1.lsat")) < 0)
{
@@ -308,9 +308,9 @@ int main(int argc, char *argv[])
*/
char release[50]; /* array for release level */
char kernel[50]; /* what kernel user is running */
- static char *man_distro; /* if the user specifies a distribution */
+ static char man_distro[10]; /* if the user specifies a distribution */
const char * header =NULL; /* to print out the header */
- static char *out_file = "lsat.out"; /* output filename var */
+ static char out_file[255] = "lsat.out"; /* output filename var */
char xlist[100]; /* modules to exclude */
int xarray[33] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int somethinginxlist = 0;
@@ -350,10 +350,10 @@ int main(int argc, char *argv[])
diff = 1;
break;
case 'm':
- strcpy(man_distro, argv[i]+3);
+ strncpy(man_distro, argv[i]+3,sizeof(man_distro));
break;
case 'o':
- strcpy(out_file, argv[i]+3);
+ strncpy(out_file, argv[i]+3,sizeof(out_file));
break;
case 'r':
rpmmodule = 1;
@@ -366,7 +366,7 @@ int main(int argc, char *argv[])
break;
case 'w':
html = 1;
- out_file="lsat.html";
+ strcpy(out_file,"lsat.html");
break;
case 'x': strcpy(xlist,argv[i]+3);
somethinginxlist = 1;