Changeset 15460
- Timestamp:
- 10/13/10 21:41:47 (3 years ago)
- File:
-
- 1 edited
-
src/router/httpd/modules/upgrade_x86.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/router/httpd/modules/upgrade_x86.c
r15245 r15460 206 206 fseek(in, 0, SEEK_END); 207 207 long mtdlen = ftell(in); 208 fseek(in, mtdlen -(65536*2), SEEK_SET);208 fseek(in, mtdlen - (65536 * 2), SEEK_SET); 209 209 fwrite(mem, 65536, 1, in); 210 210 fclose(in); 211 211 eval("sync"); 212 212 in = fopen(drive, "rb"); 213 fseek(in, mtdlen -(65536*2), SEEK_SET);213 fseek(in, mtdlen - (65536 * 2), SEEK_SET); 214 214 fread(mem, 65536, 1, in); 215 215 fclose(in); … … 218 218 fprintf(stderr, "write system\n"); 219 219 FILE *out = fopen(drive, "r+b"); 220 for (i = 0; i < linuxsize; i++) 221 putc(getc(fifo), out); 220 char *flashbuf = (char *)malloc(linuxsize); 221 if (!flashbuf) // not enough memory, use direct way 222 { 223 for (i = 0; i < linuxsize; i++) 224 putc(getc(fifo), out); 225 } else { 226 //read into temp buffer 227 fread(flashbuf, linuxsize, 1, fifo); 228 fwrite(flashbuf, linuxsize, 1, out); 229 free(flashbuf); 230 } 222 231 fclose(out); 223 232 fprintf(stderr, "sync system\n"); 224 225 233 sysprintf("sync"); 226 234 sysprintf("sync");
Note: See TracChangeset
for help on using the changeset viewer.
