Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[SCSI] gdth: fix overlapping snprintf users

Closes-bug: http://bugzilla.kernel.org/show_bug.cgi?id=13438
Closes-bug: http://bugzilla.kernel.org/show_bug.cgi?id=13437
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>

authored by

Alan Cox and committed by
James Bottomley
238ddbb9 cf4e6363

+3 -2
+3 -2
drivers/scsi/gdth_proc.c
··· 152 152 struct Scsi_Host *host, gdth_ha_str *ha) 153 153 { 154 154 int size = 0,len = 0; 155 + int hlen; 155 156 off_t begin = 0,pos = 0; 156 157 int id, i, j, k, sec, flag; 157 158 int no_mdrv = 0, drv_no, is_mirr; ··· 193 192 if (reserve_list[0] == 0xff) 194 193 strcpy(hrec, "--"); 195 194 else { 196 - sprintf(hrec, "%d", reserve_list[0]); 195 + hlen = sprintf(hrec, "%d", reserve_list[0]); 197 196 for (i = 1; i < MAX_RES_ARGS; i++) { 198 197 if (reserve_list[i] == 0xff) 199 198 break; 200 - sprintf(hrec,"%s,%d", hrec, reserve_list[i]); 199 + hlen += snprintf(hrec + hlen , 161 - hlen, ",%d", reserve_list[i]); 201 200 } 202 201 } 203 202 size = sprintf(buffer+len,