rem: char cmd[1], resp[2];
add: char cmd[1], resp[5];
context: static int jtagmkI_initialize(PROGRAMMER * pgm, AVRPART * p){  AVRMEM hfuse;  char cmd[1], resp[2];  unsigned char b;  if (!(p->flags & AVRPART_HAS_JTAG)) {    fprintf(stderr, "%s: jtagmkI_initialize(): part %s has no JTAG interface\n",	    progname, p->desc);    return -1;  }  jtagmkI_drain(pgm, 0);  if (initial_baudrate != pgm->baudrate) {    if ((b = jtagmkI_get_baud(pgm->baudrate)) == 0) {      fprintf(stderr, "%s: jtagmkI_initialize(): unsupported baudrate %d\n",              progname, pgm->baudrate);    } else {      if (verbose >= 2)        fprintf(stderr, "%s: jtagmkI_initialize(): "	      "trying to set baudrate to %d\n",                progname, pgm->baudrate);      if (jtagmkI_setparm(pgm, PARM_BITRATE, b) == 0) {        initial_baudrate = pgm->baudrate; /* don't adjust again later */        serial_setspeed(pgm->fd, pgm->baudrate);      }    }  }  if (pgm->bitclock != 0.0) {    if (verbose >= 2)      fprintf(stderr, "%s: jtagmkI_initialize(): "	      "trying to set JTAG clock period to %.1f us\n",	      progname, pgm->bitclock);    if (jtagmkI_set_sck_period(pgm, pgm->bitclock) != 0)      return -1;  }  cmd[0] = CMD_STOP;  jtagmkI_send(pgm, cmd, 1);  jtagmkI_recv(pgm, resp, 5);  if (resp[0] != RESP_OK) {    if (verbose >= 2)      putc('\n', stderr);    fprintf(stderr,	    "%s: jtagmkI_initialize(): "	    "timeout/error communicating with programmer (resp %c)\n",	    progname, resp[0]);  } else {    if (verbose == 2)      fprintf(stderr, "OK\n");  }  /*   * Must set the device descriptor before entering programming mode.   */  jtagmkI_set_devdescr(pgm, p);  jtagmkI_setparm(pgm, PARM_FLASH_PAGESIZE_LOW, flash_pagesize & 0xff);  jtagmkI_setparm(pgm, PARM_FLASH_PAGESIZE_HIGH, flash_pagesize >> 8);  jtagmkI_setparm(pgm, PARM_EEPROM_PAGESIZE, eeprom_pagesize & 0xff);  free(flash_pagecache);  free(eeprom_pagecache);  if ((flash_pagecache = malloc(flash_pagesize)) == NULL) {    fprintf(stderr, "%s: jtagmkI_initialize(): Out of memory\n",	    progname);    return -1;  }  if ((eeprom_pagecache = malloc(eeprom_pagesize)) == NULL) {    fprintf(stderr, "%s: jtagmkI_initialize(): Out of memory\n",	    progname);    free(flash_pagecache);    return -1;  }  flash_pageaddr = eeprom_pageaddr = (unsigned long)-1L;  if (jtagmkI_reset(pgm) < 0)    return -1;  strcpy(hfuse.desc, "hfuse");  if (jtagmkI_read_byte(pgm, p, &hfuse, 1, &b) < 0)    return -1;  if ((b & OCDEN) != 0)    fprintf(stderr,	    "%s: jtagmkI_initialize(): warning: OCDEN fuse not programmed, "	    "single-byte EEPROM updates not possible\n",	    progname);  return 0;}