From d03edbf5ffae792e5e5201e3bb7ba6b0a809080a Mon Sep 17 00:00:00 2001 From: Joerg Wunsch Date: Wed, 1 Jul 2009 16:08:49 +0000 Subject: [PATCH] bug #26412: avrdude segfaults when called with a programmer that does not support it Do not call pgm->perform_osccal() unless it is != 0. git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@822 81a1dc3b-b13d-400b-aceb-764788c761c2 --- ChangeLog | 6 ++++++ NEWS | 1 + main.c | 11 +++++++++-- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7f4525d7..26f96edf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2009-07-01 Joerg Wunsch + + bug #26412: avrdude segfaults when called with a programmer that does not + support it + * main.c: do not call pgm->perform_osccal() unless it is != 0. + 2009-06-24 Joerg Wunsch Contributed by Zoltan Laday: diff --git a/NEWS b/NEWS index f1531ef2..80db7a38 100644 --- a/NEWS +++ b/NEWS @@ -26,6 +26,7 @@ Current: * Major Xmega fixes for the JTAG ICE mkII (patch #6825) + * Bugfixes. Version 5.6: diff --git a/main.c b/main.c index 0f986bf3..62cb4dae 100644 --- a/main.c +++ b/main.c @@ -786,8 +786,15 @@ int main(int argc, char * argv []) * perform an RC oscillator calibration * as outlined in appnote AVR053 */ - fprintf(stderr, "%s: performing RC oscillator calibration\n", progname); - exitrc = pgm->perform_osccal(pgm); + if (pgm->perform_osccal == 0) { + fprintf(stderr, + "%s: programmer does not support RC oscillator calibration\n", + progname); + exitrc = 1; + } else { + fprintf(stderr, "%s: performing RC oscillator calibration\n", progname); + exitrc = pgm->perform_osccal(pgm); + } if (exitrc == 0 && quell_progress < 2) { fprintf(stderr, "%s: calibration value is now stored in EEPROM at address 0\n",