git: DragonFly_RELEASE_2_12 sdiff: fix wcwidth recursion

看板DFBSD_commit作者時間14年前 (2011/10/22 18:03), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
commit 52416ac24d82da3de053a528a07e89cf1419fbba Author: John Marino <draco@marino.st> Date: Thu Oct 13 00:39:51 2011 +0200 sdiff: fix wcwidth recursion Apparently trying to diff non-UTF8 documents caused a stack overflow. The culprit was correctly identified by Yonetani as the redefinition of wcwidth in the wcwidth.c file. Within that function, it calls itself recursively forever. I'm not sure how this would work differently (macro or not) on another system. My solution was to stop redefining wcwidth and just create a separate function, one that will call the system wcwidth function as needed. reported by: Peter Avalos http://bugs.dragonflybsd.org/issue2134 Summary of changes: contrib/diffutils/README.DRAGONFLY | 9 +++++---- contrib/diffutils/lib/wcwidth.c | 4 ++-- contrib/diffutils/src/side.c | 3 ++- gnu/usr.bin/diff/libdiffutils/gnuwidechar.h | 11 +++++++++++ 4 files changed, 20 insertions(+), 7 deletions(-) create mode 100644 gnu/usr.bin/diff/libdiffutils/gnuwidechar.h http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/52416ac24d82da3de053a528a07e89cf1419fbba -- DragonFly BSD source repository
文章代碼(AID): #1EefJvKA (DFBSD_commit)