Lines 1-115
Link Here
|
1 |
Description: Fix segfaults in different executables |
|
|
2 |
Some executables in the package crashed upon certain command line option |
3 |
combinations. This patch fixes this. |
4 |
Author: Roland Stigge <stigge@antcom.de> |
5 |
Bug-Debian: http://bugs.debian.org/715651 |
6 |
Bug-Debian: http://bugs.debian.org/716217 |
7 |
Bug-Debian: http://bugs.debian.org/716529 |
8 |
|
9 |
--- alliance-5.0-20120515.orig/asimut/src/vh_simulad.c |
10 |
+++ asimut/src/vh_simulad.c |
11 |
@@ -155,8 +155,8 @@ char **argv; |
12 |
arg_flg [i ] = 1; |
13 |
} |
14 |
|
15 |
- if ((!strcmp (argv [i], "-fixeddelay")) |
16 |
- || (!strcmp (argv [i], "-fd"))) |
17 |
+ if (((!strcmp (argv [i], "-fixeddelay")) |
18 |
+ || (!strcmp (argv [i], "-fd"))) && (argc > i + 1)) |
19 |
{ |
20 |
fixdly_flg = 1; |
21 |
delay_mode |= BEH_DELAY_FIXED; |
22 |
@@ -165,8 +165,8 @@ char **argv; |
23 |
arg_flg [i+1] = 1; |
24 |
} |
25 |
|
26 |
- if ((!strcmp (argv [i], "-backdelay")) |
27 |
- || (!strcmp (argv [i], "-bd"))) |
28 |
+ if (((!strcmp (argv [i], "-backdelay")) |
29 |
+ || (!strcmp (argv [i], "-bd"))) && (argc > i + 1)) |
30 |
{ |
31 |
bckdly_flg = i + 2; |
32 |
delay_mode |= BEH_DELAY_BACKANOTATED; |
33 |
@@ -221,14 +221,14 @@ char **argv; |
34 |
arg_flg [i] = 1; |
35 |
} |
36 |
|
37 |
- if (!strcmp (argv [i], "-p")) |
38 |
+ if (!strcmp (argv [i], "-p") && (argc > i + 1)) |
39 |
{ |
40 |
sscanf (argv [i+1], "%u", &max_pat); |
41 |
arg_flg [i ] = 1; |
42 |
arg_flg [i+1] = 1; |
43 |
} |
44 |
|
45 |
- if (!strcmp (argv [i], "-l")) |
46 |
+ if (!strcmp (argv [i], "-l") && (argc > i + 1)) |
47 |
{ |
48 |
sscanf (argv [i+1], "%u", &labelsiz); |
49 |
arg_flg [i ] = 1; |
50 |
@@ -241,7 +241,7 @@ char **argv; |
51 |
arg_flg [i] = 1; |
52 |
} |
53 |
|
54 |
- if (!strcmp (argv [i], "-stat")) |
55 |
+ if (!strcmp (argv [i], "-stat") && (argc > i + 1)) |
56 |
{ |
57 |
stat_flg = i + 2; |
58 |
sscanf (argv [i+1], "%u", &ref_date); |
59 |
@@ -264,7 +264,7 @@ char **argv; |
60 |
arg_flg [i+1] = 1; |
61 |
} |
62 |
|
63 |
- if (!strcmp (argv [i], "-inspect")) |
64 |
+ if (!strcmp (argv [i], "-inspect") && (argc > i + 1)) |
65 |
{ |
66 |
str = namealloc (argv [i+1]); |
67 |
pt_pains = pat_addpains (pt_pains, str, str); |
68 |
--- alliance-5.0-20120515.orig/m2e/src/m2e.c |
69 |
+++ m2e/src/m2e.c |
70 |
@@ -102,6 +102,8 @@ int ParseCommand(int argc,char *argv[]) |
71 |
switch(argv[i][1]) |
72 |
{ |
73 |
case 'v': |
74 |
+ if (argc <= i + 1) |
75 |
+ break; |
76 |
i++; |
77 |
sscanf(argv[i],"%d",&VerboseMode); |
78 |
if(VerboseMode>=VMINFO) |
79 |
@@ -109,6 +111,8 @@ int ParseCommand(int argc,char *argv[]) |
80 |
break; |
81 |
|
82 |
case 'o': |
83 |
+ if (argc <= i + 1) |
84 |
+ break; |
85 |
i++; |
86 |
OutputName=argv[i]; |
87 |
if(VerboseMode>=VMINFO) |
88 |
--- alliance-5.0-20120515.orig/mips_asm/src/mips_y.y |
89 |
+++ mips_asm/src/mips_y.y |
90 |
@@ -92,14 +92,14 @@ char *argv []; |
91 |
{ |
92 |
if (arg_flg [i] == 0) |
93 |
{ |
94 |
- if (!strcmp (argv[i], "-textsize")) |
95 |
+ if (!strcmp (argv[i], "-textsize") && argc > i + 1) |
96 |
{ |
97 |
sscanf (argv[i+1], "%u", &txt_siz); |
98 |
arg_flg [i ] = 1; |
99 |
arg_flg [i+1] = 1; |
100 |
} |
101 |
|
102 |
- if (!strcmp (argv[i], "-datasize")) |
103 |
+ if (!strcmp (argv[i], "-datasize") && argc > i + 1) |
104 |
{ |
105 |
sscanf (argv[i+1], "%u", &dat_siz); |
106 |
arg_flg [i ] = 1; |
107 |
@@ -112,7 +112,7 @@ char *argv []; |
108 |
arg_flg [i] = 1 ; |
109 |
} |
110 |
|
111 |
- if (!strcmp (argv[i], "-symbol")) |
112 |
+ if (!strcmp (argv[i], "-symbol") && argc > i + 1) |
113 |
{ |
114 |
MPS_SYMBOL = 'y' ; |
115 |
symbol_fil = argv [i+1]; |