Mercurial > hg > dmlib
comparison tools/xm2jss.c @ 1237:8b6ed580e800
Add sanity check to order list writing.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Fri, 06 Mar 2015 16:37:15 +0200 |
parents | 5b8245e5f785 |
children | 5e2b90e3e4bc |
comparison
equal
deleted
inserted
replaced
1236:b8c9af10b7fd | 1237:8b6ed580e800 |
---|---|
486 dmMsg(1," * JSSMOD-header 0x%04x, %d bytes.\n", JSSMOD_VERSION, totalSize); | 486 dmMsg(1," * JSSMOD-header 0x%04x, %d bytes.\n", JSSMOD_VERSION, totalSize); |
487 | 487 |
488 // Write orders list | 488 // Write orders list |
489 for (totalSize = order = 0; order < m->norders; order++) | 489 for (totalSize = order = 0; order < m->norders; order++) |
490 { | 490 { |
491 Uint16 tmp = m->orderList[order]; | 491 int tmp = m->orderList[order]; |
492 totalSize += sizeof(tmp); | 492 if (tmp == jsetNotSet || tmp > m->npatterns) |
493 if (fwrite(&tmp, sizeof(tmp), 1, outFile) != 1) | 493 JSSERROR(DMERR_INVALID_DATA, DMERR_INVALID_DATA, |
494 JSSERROR(DMERR_FWRITE, DMERR_FWRITE, "Could not write JSSMOD orders list.\n"); | 494 "Orderlist entry #%d has invalid value %d.\n", |
495 order, tmp); | |
496 | |
497 if (!dm_fwrite_le16(outFile, tmp)) | |
498 JSSERROR(DMERR_FWRITE, DMERR_FWRITE, | |
499 "Could not write JSSMOD orders list entry #%d (%d).\n", | |
500 order, tmp); | |
501 | |
502 totalSize += sizeof(Uint16); | |
495 } | 503 } |
496 | 504 |
497 dmMsg(1," * %d item orders list, %d bytes.\n", | 505 dmMsg(1," * %d item orders list, %d bytes.\n", |
498 m->norders, totalSize); | 506 m->norders, totalSize); |
499 | 507 |