Vine Linux バグトラッキングシステム - Vine Linux
課題の詳細を表示
0000686Vine Linux1 バグ公開2009-04-18 11:242009-05-05 04:11
anonymous 
 
不明 
完了不明 
VineSeed 
 
x86, x86_64
radvd-1.0-2vl5
0000686: radvdのlog.cでsegfault
radvd-1.0-2vl5のlog.cにおいて、
特定の条件下でva_listを複数回使用することがあり、
segfaultを引き起こします。

upstreamは未確認、以下修正例

--- rpm/BUILD/radvd-1.0/log.c 2006-10-09 15:15:32.000000000 +0900
+++ log.c 2009-04-18 11:08:40.000000000 +0900
@@ -72,15 +72,15 @@
        struct tm *tm;
        time_t current;

+ vsnprintf(buff, sizeof(buff), format, ap );
+
        switch (log_method) {
                case L_NONE:
                        break;
                case L_SYSLOG:
- vsnprintf(buff, sizeof(buff), format, ap);
                        syslog(prio, "%s", buff);
                        break;
                case L_STDERR_SYSLOG:
- vsnprintf(buff, sizeof(buff), format, ap);
                        syslog(prio, "%s", buff);
                        if (prio > LOG_ERR) /* fall through for messages with high priority */
                                break;
@@ -89,9 +89,7 @@
                        tm = localtime(&current);
                        (void) strftime(tstamp, sizeof(tstamp), LOG_TIME_FORMAT, tm);

- fprintf(stderr, "[%s] %s: ", tstamp, log_ident);
- vfprintf(stderr, format, ap);
- fputs("\n", stderr);
+ fprintf(stderr, "[%s] %s: %s\n", tstamp, log_ident, buff);
                        fflush(stderr);
                        break;
                case L_LOGFILE:
@@ -99,9 +97,7 @@
                        tm = localtime(&current);
                        (void) strftime(tstamp, sizeof(tstamp), LOG_TIME_FORMAT, tm);

- fprintf(log_file_fd, "[%s] %s: ", tstamp, log_ident);
- vfprintf(log_file_fd, format, ap);
- fputs("\n", log_file_fd);
+ fprintf(log_file_fd, "[%s] %s: %s\n", tstamp, log_ident, buff);
                        fflush(log_file_fd);
                        break;
                default:
設定されていません。
課題の履歴
2009-04-18 11:24anonymous新規課題
2009-05-05 04:11daisuke状態新規 => 完了
2009-05-05 04:11daisukeコメント追加: 0003085

コメント
(0003085)
daisuke   
2009-05-05 04:11   
> radvd-1.0-2vl5のlog.cにおいて、
> 特定の条件下でva_listを複数回使用することがあり、
> segfaultを引き起こします。
>
> upstreamは未確認、以下修正例

radvd-1.1-1 で upstream version 1.1 に更新しました。
この件の修正は upstream で同じ修正が行われていましたので、
完了とします。