rev |
line source |
al@20241
|
1 Description: Fix compilation with gcc/g++ 6
|
al@20241
|
2 Multiple inFile.getline() calls within xplanet test the return
|
al@20241
|
3 against NULL in a read loop, but g++ 6 doesn't like this. Replace
|
al@20241
|
4 with checks for inFile.eof() and inFile.fail() instead.
|
al@20241
|
5 Author: Steve McIntyre <93sam@debian.org>
|
al@20241
|
6 Bug-Debian: https://bugs.debian.org/811820
|
al@20241
|
7 Forwarded: Hari Nair <hari@alumni.caltech.edu>
|
al@20241
|
8 Last-Update: 2016-07-18
|
al@20241
|
9
|
al@20241
|
10 --- xplanet-1.3.0.orig/src/libannotate/addArcs.cpp
|
al@20241
|
11 +++ xplanet-1.3.0/src/libannotate/addArcs.cpp
|
al@20241
|
12 @@ -258,10 +258,14 @@ addArcs(PlanetProperties *planetProperti
|
al@20241
|
13 {
|
al@20241
|
14 ifstream inFile(arcFile.c_str());
|
al@20241
|
15 char *line = new char[MAX_LINE_LENGTH];
|
al@20241
|
16 - while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL)
|
al@20241
|
17 - readArcFile(line, planet, view, projection,
|
al@20241
|
18 - planetProperties, annotationMap);
|
al@20241
|
19 -
|
al@20241
|
20 + while (1)
|
al@20241
|
21 + {
|
al@20241
|
22 + inFile.getline (line, MAX_LINE_LENGTH, '\n');
|
al@20241
|
23 + if (inFile.eof() || inFile.fail())
|
al@20241
|
24 + break;
|
al@20241
|
25 + readArcFile(line, planet, view, projection,
|
al@20241
|
26 + planetProperties, annotationMap);
|
al@20241
|
27 + }
|
al@20241
|
28 inFile.close();
|
al@20241
|
29 delete [] line;
|
al@20241
|
30 }
|
al@20241
|
31 @@ -292,9 +296,13 @@ addArcs(View *view, multimap<double, Ann
|
al@20241
|
32 {
|
al@20241
|
33 ifstream inFile(arcFile.c_str());
|
al@20241
|
34 char *line = new char[256];
|
al@20241
|
35 - while (inFile.getline (line, 256, '\n') != NULL)
|
al@20241
|
36 - readArcFile(line, NULL, view, NULL, NULL, annotationMap);
|
al@20241
|
37 -
|
al@20241
|
38 + while (1)
|
al@20241
|
39 + {
|
al@20241
|
40 + inFile.getline (line, 256, '\n');
|
al@20241
|
41 + if (inFile.eof() || inFile.fail())
|
al@20241
|
42 + break;
|
al@20241
|
43 + readArcFile(line, NULL, view, NULL, NULL, annotationMap);
|
al@20241
|
44 + }
|
al@20241
|
45 inFile.close();
|
al@20241
|
46 delete [] line;
|
al@20241
|
47 }
|
al@20241
|
48 --- xplanet-1.3.0.orig/src/libannotate/addMarkers.cpp
|
al@20241
|
49 +++ xplanet-1.3.0/src/libannotate/addMarkers.cpp
|
al@20241
|
50 @@ -423,13 +423,16 @@ addMarkers(PlanetProperties *planetPrope
|
al@20241
|
51 {
|
al@20241
|
52 ifstream inFile(markerFile.c_str());
|
al@20241
|
53 char *line = new char[MAX_LINE_LENGTH];
|
al@20241
|
54 - while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL)
|
al@20241
|
55 + while (1)
|
al@20241
|
56 {
|
al@20241
|
57 unsigned char color[3];
|
al@20241
|
58 memcpy(color, planetProperties->MarkerColor(), 3);
|
al@20241
|
59 string font(planetProperties->MarkerFont());
|
al@20241
|
60 int fontSize(planetProperties->MarkerFontSize());
|
al@20241
|
61
|
al@20241
|
62 + inFile.getline (line, MAX_LINE_LENGTH, '\n');
|
al@20241
|
63 + if (inFile.eof() || inFile.fail())
|
al@20241
|
64 + break;
|
al@20241
|
65 readMarkerFile(line, planet, pixel_radius, X, Y, Z,
|
al@20241
|
66 view, projection, width, height,
|
al@20241
|
67 color, font, fontSize,
|
al@20241
|
68 @@ -469,13 +472,18 @@ addMarkers(View *view, const int width,
|
al@20241
|
69 {
|
al@20241
|
70 ifstream inFile(markerFile.c_str());
|
al@20241
|
71 char *line = new char[MAX_LINE_LENGTH];
|
al@20241
|
72 - while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL)
|
al@20241
|
73 - {
|
al@20241
|
74 + while (1)
|
al@20241
|
75 + {
|
al@20241
|
76 + inFile.getline (line, MAX_LINE_LENGTH, '\n');
|
al@20241
|
77 +
|
al@20241
|
78 unsigned char color[3];
|
al@20241
|
79 memcpy(color, options->Color(), 3);
|
al@20241
|
80 string font(options->Font());
|
al@20241
|
81 int fontSize(options->FontSize());
|
al@20241
|
82
|
al@20241
|
83 + if (inFile.eof() || inFile.fail())
|
al@20241
|
84 + break;
|
al@20241
|
85 +
|
al@20241
|
86 readMarkerFile(line, NULL, 0, 0, 0, 0,
|
al@20241
|
87 view, NULL, width, height,
|
al@20241
|
88 color, font, fontSize, 1.0,
|
al@20241
|
89 --- xplanet-1.3.0.orig/src/libannotate/addSatellites.cpp
|
al@20241
|
90 +++ xplanet-1.3.0/src/libannotate/addSatellites.cpp
|
al@20241
|
91 @@ -488,11 +488,23 @@ loadSatelliteVector(PlanetProperties *pl
|
al@20241
|
92 {
|
al@20241
|
93 ifstream inFile(tleFile.c_str());
|
al@20241
|
94 char lines[3][80];
|
al@20241
|
95 - while (inFile.getline(lines[0], 80) != NULL)
|
al@20241
|
96 - {
|
al@20241
|
97 - if ((inFile.getline(lines[1], 80) == NULL)
|
al@20241
|
98 - || (inFile.getline(lines[2], 80) == NULL))
|
al@20241
|
99 - {
|
al@20241
|
100 + bool malformed_file = false;
|
al@20241
|
101 + while (1)
|
al@20241
|
102 + {
|
al@20241
|
103 + inFile.getline(lines[0], 80);
|
al@20241
|
104 + if (inFile.eof() || inFile.fail())
|
al@20241
|
105 + break;
|
al@20241
|
106 + inFile.getline(lines[1], 80);
|
al@20241
|
107 + if (inFile.eof() || inFile.fail())
|
al@20241
|
108 + malformed_file = true;
|
al@20241
|
109 + else
|
al@20241
|
110 + {
|
al@20241
|
111 + inFile.getline(lines[2], 80);
|
al@20241
|
112 + if (inFile.eof() || inFile.fail())
|
al@20241
|
113 + malformed_file = true;
|
al@20241
|
114 + }
|
al@20241
|
115 + if (malformed_file)
|
al@20241
|
116 + {
|
al@20241
|
117 ostringstream errStr;
|
al@20241
|
118 errStr << "Malformed TLE file (" << tleFile << ")?\n";
|
al@20241
|
119 xpWarn(errStr.str(), __FILE__, __LINE__);
|
al@20241
|
120 @@ -542,10 +554,14 @@ addSatellites(PlanetProperties *planetPr
|
al@20241
|
121 {
|
al@20241
|
122 ifstream inFile(satFile.c_str());
|
al@20241
|
123 char *line = new char[MAX_LINE_LENGTH];
|
al@20241
|
124 - while (inFile.getline (line, MAX_LINE_LENGTH, '\n') != NULL)
|
al@20241
|
125 + while (1)
|
al@20241
|
126 + {
|
al@20241
|
127 + inFile.getline (line, MAX_LINE_LENGTH, '\n');
|
al@20241
|
128 + if (inFile.eof() || inFile.fail())
|
al@20241
|
129 + break;
|
al@20241
|
130 readSatelliteFile(line, planet, view, projection,
|
al@20241
|
131 planetProperties, annotationMap);
|
al@20241
|
132 -
|
al@20241
|
133 + }
|
al@20241
|
134 inFile.close();
|
al@20241
|
135 delete [] line;
|
al@20241
|
136 }
|
al@20241
|
137 --- xplanet-1.3.0.orig/src/libmultiple/RayleighScattering.cpp
|
al@20241
|
138 +++ xplanet-1.3.0/src/libmultiple/RayleighScattering.cpp
|
al@20241
|
139 @@ -369,8 +369,12 @@ RayleighScattering::readConfigFile(strin
|
al@20241
|
140
|
al@20241
|
141 diskTemplate_.clear();
|
al@20241
|
142 limbTemplate_.clear();
|
al@20241
|
143 - while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
|
al@20241
|
144 + while (1)
|
al@20241
|
145 {
|
al@20241
|
146 + inFile.getline(line, MAX_LINE_LENGTH, '\n');
|
al@20241
|
147 + if (inFile.eof() || inFile.fail())
|
al@20241
|
148 + break;
|
al@20241
|
149 +
|
al@20241
|
150 int i = 0;
|
al@20241
|
151 while (isDelimiter(line[i]))
|
al@20241
|
152 {
|
al@20241
|
153 @@ -439,8 +443,12 @@ RayleighScattering::readBlock(ifstream &
|
al@20241
|
154 values.clear();
|
al@20241
|
155
|
al@20241
|
156 char line[MAX_LINE_LENGTH];
|
al@20241
|
157 - while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
|
al@20241
|
158 + while (1)
|
al@20241
|
159 {
|
al@20241
|
160 + inFile.getline(line, MAX_LINE_LENGTH, '\n');
|
al@20241
|
161 + if (inFile.eof() || inFile.fail())
|
al@20241
|
162 + break;
|
al@20241
|
163 +
|
al@20241
|
164 int i = 0;
|
al@20241
|
165 while (isDelimiter(line[i]))
|
al@20241
|
166 {
|
al@20241
|
167 @@ -470,8 +478,12 @@ RayleighScattering::readValue(ifstream &
|
al@20241
|
168 double &value)
|
al@20241
|
169 {
|
al@20241
|
170 char line[MAX_LINE_LENGTH];
|
al@20241
|
171 - while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
|
al@20241
|
172 + while (1)
|
al@20241
|
173 {
|
al@20241
|
174 + inFile.getline(line, MAX_LINE_LENGTH, '\n');
|
al@20241
|
175 + if (inFile.eof() || inFile.fail())
|
al@20241
|
176 + break;
|
al@20241
|
177 +
|
al@20241
|
178 int i = 0;
|
al@20241
|
179 while (isDelimiter(line[i]))
|
al@20241
|
180 {
|
al@20241
|
181 --- xplanet-1.3.0.orig/src/libmultiple/drawStars.cpp
|
al@20241
|
182 +++ xplanet-1.3.0/src/libmultiple/drawStars.cpp
|
al@20241
|
183 @@ -41,8 +41,12 @@ drawStars(DisplayBase *display, View *vi
|
al@20241
|
184 ifstream inFile(starMap.c_str());
|
al@20241
|
185
|
al@20241
|
186 char line[MAX_LINE_LENGTH];
|
al@20241
|
187 - while (inFile.getline(line, MAX_LINE_LENGTH, '\n') != NULL)
|
al@20241
|
188 + while (1)
|
al@20241
|
189 {
|
al@20241
|
190 + inFile.getline(line, MAX_LINE_LENGTH, '\n');
|
al@20241
|
191 + if (inFile.eof() || inFile.fail())
|
al@20241
|
192 + break;
|
al@20241
|
193 +
|
al@20241
|
194 if (line[0] == '#') continue;
|
al@20241
|
195
|
al@20241
|
196 double Vmag, RA, Dec;
|
al@20241
|
197 --- xplanet-1.3.0.orig/src/readConfig.cpp
|
al@20241
|
198 +++ xplanet-1.3.0/src/readConfig.cpp
|
al@20241
|
199 @@ -550,9 +550,13 @@ readConfigFile(string configFile, Planet
|
al@20241
|
200
|
al@20241
|
201 ifstream inFile(configFile.c_str());
|
al@20241
|
202 char *line = new char[256];
|
al@20241
|
203 - while (inFile.getline(line, 256, '\n') != NULL)
|
al@20241
|
204 + while (1)
|
al@20241
|
205 + {
|
al@20241
|
206 + inFile.getline(line, 256, '\n');
|
al@20241
|
207 + if (inFile.eof() || inFile.fail())
|
al@20241
|
208 + break;
|
al@20241
|
209 readConfig(line, planetProperties);
|
al@20241
|
210 -
|
al@20241
|
211 + }
|
al@20241
|
212 // This condition will only be true if [default] is the only
|
al@20241
|
213 // section in the config file. In this case, set all planet
|
al@20241
|
214 // properties to the default values.
|