On Fri, Aug 5, 2011 at 09:23, David Wagner wrote: > +#include <endian.h>
this is not portable. include compiler.h and use the already existing uswap/cpu_to/to_cpu/etc... helpers. > +static void usage(void) > +{ > + printf("envcrc [-h] [-r] [-b] -s <envrionnment partition size> -o > <output> " funny, "envcrc" isnt what the filename actually is ... typo with "environment" seems like this should also take a padding byte so people can use a more sensible 0xff rather than 0x00 > + "\t-b : the target is big endian (default is little > endian)\n"); > + > +} kill useless newline before brace > + opterr = 0; unnecessary ... punt it > + switch (option) > + { cuddle the brace up > + /* Check the configuration file ...*/ > + txt_filename = strdup(argv[optind]); no need to strdup this. argv isnt going anywhere. > + ret = stat(txt_filename, &txt_file_stat); > + if (ret == -1) { > + fprintf(stderr, "Can't stat() on configuration file: %s", > + strerror(errno)); > + return EXIT_FAILURE; > + } > + if (txt_file_stat.st_size > envsize) { > + fprintf(stderr, "The configuration file is larger than the " > + "envrionnment partition size\n"); > + return EXIT_FAILURE; > + } > + > + /* ... and open it. */ > + txt_file = fopen(txt_filename, "r"); fopen() it, then fstat() the fileno(txt_file) to avoid possible race conditions. also, use "rb". > + /* Read the raw configuration file and transform it */ > + ret = fread(envptr, txt_file_stat.st_size, 1, txt_file); you've swapped size and nemb args > + for (i = 0 ; i < envsize ; i++) > + if (envptr[i] == '\n') > + envptr[i] = '\0'; you could use memchr() and a while loop instead ... but probably not worth the effort > + ret = fclose(txt_file); you could fclose() before the envptr conversion since you're done with the file at that point > + *((uint32_t*) dataptr) = bigendian ? htobe32(crc) : htole32(crc); create a local uint32_t variable to set, then use memcpy to copy it over to dataptr > + bin_file = fopen(bin_filename, "w"); "wb" > + if (fwrite(dataptr, 1, datasize, bin_file) != datasize) { funny enough, you got the size/nemb args in the right order here ;) -mike _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot