[tuxdroid-svn] r205 - firmware/tuxup/trunk
Status: Beta
Brought to you by:
ks156
From: jaguarondi <c2m...@c2...> - 2007-03-23 02:02:00
|
Author: jaguarondi Date: 2007-03-23 03:01:47 +0100 (Fri, 23 Mar 2007) New Revision: 205 Modified: firmware/tuxup/trunk/main.c Log: - BUG: segfault when the given filename didn't have an extension Modified: firmware/tuxup/trunk/main.c =================================================================== --- firmware/tuxup/trunk/main.c 2007-03-23 01:57:24 UTC (rev 204) +++ firmware/tuxup/trunk/main.c 2007-03-23 02:01:47 UTC (rev 205) @@ -347,42 +347,45 @@ filename = filenamepath; } if (verbose) printf ("Processing: %s\n", filename); + extension = strrchr(filename, '.'); - - /* Check which program function to start. */ - if (!strcmp(extension, ".hex")) + if (extension) /* check that an extension has been given */ { - int i, usb = 0; - /* Check for 'fuxusb' hex file. */ - len = strlen(filename); - for (i=0; i< len-7; i++) + /* Check which program function to start. */ + if (!strcmp(extension, ".hex")) { - if (!strncmp(filename+i, "fuxusb", 6)) + int i, usb = 0; + /* Check for 'fuxusb' hex file. */ + len = strlen(filename); + for (i=0; i< len-7; i++) { - ret = prog_usb(filename); - usb = 1; - break; + if (!strncmp(filename+i, "fuxusb", 6)) + { + ret = prog_usb(filename); + usb = 1; + break; + } } + if (!usb) /* AVR hex file. */ + ret = prog_flash(filename); } - if (!usb) /* AVR hex file. */ - ret = prog_flash(filename); - } - else if (!strcmp(extension, ".eep")) - { - int i; - len = strlen(filename); - for (i=0; i< len-7; i++) + else if (!strcmp(extension, ".eep")) { - if (!strncmp(filename+i, "tuxcore", 7)) + int i; + len = strlen(filename); + for (i=0; i< len-7; i++) { - ret = prog_eeprom(TUXCORE_CPU_NUM, filename); - break; + if (!strncmp(filename+i, "tuxcore", 7)) + { + ret = prog_eeprom(TUXCORE_CPU_NUM, filename); + break; + } + else if (!strncmp(filename+i, "tuxaudio", 7)) + { + ret = prog_eeprom(TUXAUDIO_CPU_NUM, filename); + break; + } } - else if (!strncmp(filename+i, "tuxaudio", 7)) - { - ret = prog_eeprom(TUXAUDIO_CPU_NUM, filename); - break; - } } } if (ret == -1) fprintf(stderr, "%s is not a valid programming file.\n", filename); |