diff options
author | Nicolas Pennequin <nicolas.pennequin@free.fr> | 2007-05-02 17:51:01 +0000 |
---|---|---|
committer | Nicolas Pennequin <nicolas.pennequin@free.fr> | 2007-05-02 17:51:01 +0000 |
commit | aa220d5acdbfd8178580e7eb503c205406e2be74 (patch) | |
tree | 00b576acd86a120c371ab7257787e173d08970c0 /apps/gui/wps_debug.c | |
parent | 2a20bfe15325a2a94f49e0cec49f20b3c2aecc18 (diff) | |
download | rockbox-aa220d5acdbfd8178580e7eb503c205406e2be74.tar.gz rockbox-aa220d5acdbfd8178580e7eb503c205406e2be74.zip |
Trim a bunch of long lines and fix an infinite loop and buffer overrun in the impossible case that a WPS line ends with a litteral string but without a newline char (wps_parser.c:774).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13306 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/gui/wps_debug.c')
-rw-r--r-- | apps/gui/wps_debug.c | 61 |
1 files changed, 40 insertions, 21 deletions
diff --git a/apps/gui/wps_debug.c b/apps/gui/wps_debug.c index a5f0e2128d..767f296cdd 100644 --- a/apps/gui/wps_debug.c +++ b/apps/gui/wps_debug.c | |||
@@ -149,7 +149,8 @@ static void dump_wps_tokens(struct wps_data *data) | |||
149 | snprintf(buf, sizeof(buf), "rtc: day of month (01..31)"); | 149 | snprintf(buf, sizeof(buf), "rtc: day of month (01..31)"); |
150 | break; | 150 | break; |
151 | case WPS_TOKEN_RTC_DAY_OF_MONTH_BLANK_PADDED: | 151 | case WPS_TOKEN_RTC_DAY_OF_MONTH_BLANK_PADDED: |
152 | snprintf(buf, sizeof(buf), "rtc: day of month, blank padded ( 1..31)"); | 152 | snprintf(buf, sizeof(buf), |
153 | "rtc: day of month, blank padded ( 1..31)"); | ||
153 | break; | 154 | break; |
154 | case WPS_TOKEN_RTC_HOUR_24_ZERO_PADDED: | 155 | case WPS_TOKEN_RTC_HOUR_24_ZERO_PADDED: |
155 | snprintf(buf, sizeof(buf), "rtc: hour (00..23)"); | 156 | snprintf(buf, sizeof(buf), "rtc: hour (00..23)"); |
@@ -173,28 +174,35 @@ static void dump_wps_tokens(struct wps_data *data) | |||
173 | snprintf(buf, sizeof(buf), "rtc: second (00..59)"); | 174 | snprintf(buf, sizeof(buf), "rtc: second (00..59)"); |
174 | break; | 175 | break; |
175 | case WPS_TOKEN_RTC_YEAR_2_DIGITS: | 176 | case WPS_TOKEN_RTC_YEAR_2_DIGITS: |
176 | snprintf(buf, sizeof(buf), "rtc: last two digits of year (00..99)"); | 177 | snprintf(buf, sizeof(buf), |
178 | "rtc: last two digits of year (00..99)"); | ||
177 | break; | 179 | break; |
178 | case WPS_TOKEN_RTC_YEAR_4_DIGITS: | 180 | case WPS_TOKEN_RTC_YEAR_4_DIGITS: |
179 | snprintf(buf, sizeof(buf), "rtc: year (1970...)"); | 181 | snprintf(buf, sizeof(buf), "rtc: year (1970...)"); |
180 | break; | 182 | break; |
181 | case WPS_TOKEN_RTC_AM_PM_UPPER: | 183 | case WPS_TOKEN_RTC_AM_PM_UPPER: |
182 | snprintf(buf, sizeof(buf), "rtc: upper case AM or PM indicator"); | 184 | snprintf(buf, sizeof(buf), |
185 | "rtc: upper case AM or PM indicator"); | ||
183 | break; | 186 | break; |
184 | case WPS_TOKEN_RTC_AM_PM_LOWER: | 187 | case WPS_TOKEN_RTC_AM_PM_LOWER: |
185 | snprintf(buf, sizeof(buf), "rtc: lower case am or pm indicator"); | 188 | snprintf(buf, sizeof(buf), |
189 | "rtc: lower case am or pm indicator"); | ||
186 | break; | 190 | break; |
187 | case WPS_TOKEN_RTC_WEEKDAY_NAME: | 191 | case WPS_TOKEN_RTC_WEEKDAY_NAME: |
188 | snprintf(buf, sizeof(buf), "rtc: abbreviated weekday name (Sun..Sat)"); | 192 | snprintf(buf, sizeof(buf), |
193 | "rtc: abbreviated weekday name (Sun..Sat)"); | ||
189 | break; | 194 | break; |
190 | case WPS_TOKEN_RTC_MONTH_NAME: | 195 | case WPS_TOKEN_RTC_MONTH_NAME: |
191 | snprintf(buf, sizeof(buf), "rtc: abbreviated month name (Jan..Dec)"); | 196 | snprintf(buf, sizeof(buf), |
197 | "rtc: abbreviated month name (Jan..Dec)"); | ||
192 | break; | 198 | break; |
193 | case WPS_TOKEN_RTC_DAY_OF_WEEK_START_MON: | 199 | case WPS_TOKEN_RTC_DAY_OF_WEEK_START_MON: |
194 | snprintf(buf, sizeof(buf), "rtc: day of week (1..7); 1 is Monday"); | 200 | snprintf(buf, sizeof(buf), |
201 | "rtc: day of week (1..7); 1 is Monday"); | ||
195 | break; | 202 | break; |
196 | case WPS_TOKEN_RTC_DAY_OF_WEEK_START_SUN: | 203 | case WPS_TOKEN_RTC_DAY_OF_WEEK_START_SUN: |
197 | snprintf(buf, sizeof(buf), "rtc: day of week (0..6); 0 is Sunday"); | 204 | snprintf(buf, sizeof(buf), |
205 | "rtc: day of week (0..6); 0 is Sunday"); | ||
198 | break; | 206 | break; |
199 | #endif | 207 | #endif |
200 | 208 | ||
@@ -265,31 +273,38 @@ static void dump_wps_tokens(struct wps_data *data) | |||
265 | break; | 273 | break; |
266 | 274 | ||
267 | case WPS_TOKEN_METADATA_ARTIST: | 275 | case WPS_TOKEN_METADATA_ARTIST: |
268 | snprintf(buf, sizeof(buf), "%strack artist", next_str(next)); | 276 | snprintf(buf, sizeof(buf), "%strack artist", |
277 | next_str(next)); | ||
269 | break; | 278 | break; |
270 | 279 | ||
271 | case WPS_TOKEN_METADATA_COMPOSER: | 280 | case WPS_TOKEN_METADATA_COMPOSER: |
272 | snprintf(buf, sizeof(buf), "%strack composer", next_str(next)); | 281 | snprintf(buf, sizeof(buf), "%strack composer", |
282 | next_str(next)); | ||
273 | break; | 283 | break; |
274 | 284 | ||
275 | case WPS_TOKEN_METADATA_ALBUM: | 285 | case WPS_TOKEN_METADATA_ALBUM: |
276 | snprintf(buf, sizeof(buf), "%strack album", next_str(next)); | 286 | snprintf(buf, sizeof(buf), "%strack album", |
287 | next_str(next)); | ||
277 | break; | 288 | break; |
278 | 289 | ||
279 | case WPS_TOKEN_METADATA_GENRE: | 290 | case WPS_TOKEN_METADATA_GENRE: |
280 | snprintf(buf, sizeof(buf), "%strack genre", next_str(next)); | 291 | snprintf(buf, sizeof(buf), "%strack genre", |
292 | next_str(next)); | ||
281 | break; | 293 | break; |
282 | 294 | ||
283 | case WPS_TOKEN_METADATA_TRACK_NUMBER: | 295 | case WPS_TOKEN_METADATA_TRACK_NUMBER: |
284 | snprintf(buf, sizeof(buf), "%strack number", next_str(next)); | 296 | snprintf(buf, sizeof(buf), "%strack number", |
297 | next_str(next)); | ||
285 | break; | 298 | break; |
286 | 299 | ||
287 | case WPS_TOKEN_METADATA_TRACK_TITLE: | 300 | case WPS_TOKEN_METADATA_TRACK_TITLE: |
288 | snprintf(buf, sizeof(buf), "%strack title", next_str(next)); | 301 | snprintf(buf, sizeof(buf), "%strack title", |
302 | next_str(next)); | ||
289 | break; | 303 | break; |
290 | 304 | ||
291 | case WPS_TOKEN_METADATA_VERSION: | 305 | case WPS_TOKEN_METADATA_VERSION: |
292 | snprintf(buf, sizeof(buf), "%strack ID3 version", next_str(next)); | 306 | snprintf(buf, sizeof(buf), "%strack ID3 version", |
307 | next_str(next)); | ||
293 | break; | 308 | break; |
294 | 309 | ||
295 | case WPS_TOKEN_METADATA_YEAR: | 310 | case WPS_TOKEN_METADATA_YEAR: |
@@ -325,7 +340,8 @@ static void dump_wps_tokens(struct wps_data *data) | |||
325 | break; | 340 | break; |
326 | 341 | ||
327 | case WPS_TOKEN_FILE_FREQUENCY: | 342 | case WPS_TOKEN_FILE_FREQUENCY: |
328 | snprintf(buf, sizeof(buf), "%sfile audio frequency", next_str(next)); | 343 | snprintf(buf, sizeof(buf), "%sfile audio frequency", |
344 | next_str(next)); | ||
329 | break; | 345 | break; |
330 | 346 | ||
331 | case WPS_TOKEN_FILE_NAME: | 347 | case WPS_TOKEN_FILE_NAME: |
@@ -333,7 +349,8 @@ static void dump_wps_tokens(struct wps_data *data) | |||
333 | break; | 349 | break; |
334 | 350 | ||
335 | case WPS_TOKEN_FILE_NAME_WITH_EXTENSION: | 351 | case WPS_TOKEN_FILE_NAME_WITH_EXTENSION: |
336 | snprintf(buf, sizeof(buf), "%sfile name with extension", next_str(next)); | 352 | snprintf(buf, sizeof(buf), "%sfile name with extension", |
353 | next_str(next)); | ||
337 | break; | 354 | break; |
338 | 355 | ||
339 | case WPS_TOKEN_FILE_PATH: | 356 | case WPS_TOKEN_FILE_PATH: |
@@ -349,8 +366,8 @@ static void dump_wps_tokens(struct wps_data *data) | |||
349 | break; | 366 | break; |
350 | 367 | ||
351 | case WPS_TOKEN_FILE_DIRECTORY: | 368 | case WPS_TOKEN_FILE_DIRECTORY: |
352 | snprintf(buf, sizeof(buf), "%sfile directory, level: %d", next_str(next), | 369 | snprintf(buf, sizeof(buf), "%sfile directory, level: %d", |
353 | token->value.i); | 370 | next_str(next), token->value.i); |
354 | break; | 371 | break; |
355 | 372 | ||
356 | default: | 373 | default: |
@@ -421,9 +438,11 @@ static void print_wps_strings(struct wps_data *data) | |||
421 | DEBUGF("%2d: (%2d) '%s'\n", i, len, data->strings[i]); | 438 | DEBUGF("%2d: (%2d) '%s'\n", i, len, data->strings[i]); |
422 | } | 439 | } |
423 | DEBUGF("\n"); | 440 | DEBUGF("\n"); |
424 | DEBUGF("Number of strings: %d out of an allowed %d\n", data->num_strings, WPS_MAX_STRINGS); | 441 | DEBUGF("Number of strings: %d out of an allowed %d\n", |
442 | data->num_strings, WPS_MAX_STRINGS); | ||
425 | DEBUGF("Total string length: %d\n", total_len); | 443 | DEBUGF("Total string length: %d\n", total_len); |
426 | DEBUGF("String buffer used: %d out of %d bytes\n", buf_used, STRING_BUFFER_SIZE); | 444 | DEBUGF("String buffer used: %d out of %d bytes\n", |
445 | buf_used, STRING_BUFFER_SIZE); | ||
427 | DEBUGF("\n"); | 446 | DEBUGF("\n"); |
428 | } | 447 | } |
429 | 448 | ||