diff --git a/ChangeLog b/ChangeLog index 0216356ea30..ff18c551553 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4581,3 +4581,8 @@ variables with auto-generated documentation. The initial checkin is an incomplete, poorly structured prototype that I hope to evolve into a useful tool (2014-4-20). + * libc/string/lib_strchr.c: strchr(str, '\0') should return a + pointer to the end of the string, not NULL. From Petteri + Aimonen (2014-4-22). + * fs/fat/fs_writefat.c: mkfatfs was writing the boot code to the + wrong location. From Petteri Aimonen (2014-4-22). diff --git a/fs/fat/fs_writefat.c b/fs/fat/fs_writefat.c index 564be5b50c3..1d58db5f201 100644 --- a/fs/fat/fs_writefat.c +++ b/fs/fat/fs_writefat.c @@ -212,7 +212,7 @@ static inline void mkfatfs_initmbr(FAR struct fat_format_s *fmt, /* Boot code may be placed in the remainder of the sector */ - memcpy(&var->fv_sect[BS16_BOOTCODE], var->fv_bootcode, var->fv_bootcodesize); + memcpy(&var->fv_sect[BS32_BOOTCODE], var->fv_bootcode, var->fv_bootcodesize); } /* The magic bytes at the end of the MBR are common to FAT12/16/32 */ diff --git a/libc/string/lib_strchr.c b/libc/string/lib_strchr.c index e6af56eee58..7d7cf3757ce 100644 --- a/libc/string/lib_strchr.c +++ b/libc/string/lib_strchr.c @@ -64,12 +64,17 @@ FAR char *strchr(FAR const char *s, int c) { if (s) { - for (; *s; s++) + for (; ; s++) { if (*s == c) { return (FAR char *)s; } + + if (!*s) + { + break; + } } }