12345678910111213141516171819202122232425262728293031323334353637383940 |
- /*
- * Copyright 2014 The Chromium OS Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- *
- * This is a very simple binary editor, used to create corrupted structs for
- * testing. It copies stdin to stdout, replacing bytes beginning at the given
- * offset with the specified 8-bit values.
- *
- * There is NO conversion checking of the arguments.
- */
- #include <stdint.h>
- #include <stdio.h>
- #include <stdlib.h>
- int main(int argc, char *argv[])
- {
- uint32_t offset, curpos, curarg;
- int c;
- if (argc < 3) {
- fprintf(stderr, "Need two or more args: OFFSET VAL [VAL...]\n");
- return 1;
- }
- offset = (uint32_t)strtoul(argv[1], 0, 0);
- curarg = 2;
- for ( curpos = 0; (c = fgetc(stdin)) != EOF; curpos++) {
- if (curpos == offset && curarg < argc) {
- c = (uint8_t)strtoul(argv[curarg++], 0, 0);
- offset++;
- }
- fputc(c, stdout);
- }
- return 0;
- }
|