aboutsummaryrefslogtreecommitdiffstats
path: root/file.c
diff options
context:
space:
mode:
authorIto Hiroyuki <ZXB01226@nifty.com>2010-07-30 08:50:39 +0000
committerIto Hiroyuki <ZXB01226@nifty.com>2010-07-30 08:50:39 +0000
commitee6f535379b157dd33211f7b3fe0527dccfdd99c (patch)
treedc4096ce08f7633f54f4fc04669d13cecd3779a9 /file.c
parent* [w3m-dev 04237] [patch] cookie avoid [wrong number of dots] (diff)
downloadw3m-ee6f535379b157dd33211f7b3fe0527dccfdd99c.tar.gz
w3m-ee6f535379b157dd33211f7b3fe0527dccfdd99c.zip
* [w3m-dev 04345] Re: "important" bugs from bugs.debian.org
* file.c (HR_ATTR_WIDTH_MAX): added. * file.c (process_hr): check w > HR_ATTR_WIDTH_MAX
Diffstat (limited to 'file.c')
-rw-r--r--file.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/file.c b/file.c
index c53077b..936f7be 100644
--- a/file.c
+++ b/file.c
@@ -1,4 +1,4 @@
-/* $Id: file.c,v 1.260 2010/07/24 04:30:40 htrb Exp $ */
+/* $Id: file.c,v 1.261 2010/07/30 08:50:39 htrb Exp $ */
#include "fm.h"
#include <sys/types.h>
#include "myctype.h"
@@ -4008,13 +4008,18 @@ process_hr(struct parsed_tag *tag, int width, int indent_width)
Str tmp = Strnew_charp("<nobr>");
int w = 0;
int x = ALIGN_CENTER;
+#define HR_ATTR_WIDTH_MAX 65535
if (width > indent_width)
width -= indent_width;
- if (parsedtag_get_value(tag, ATTR_WIDTH, &w))
+ if (parsedtag_get_value(tag, ATTR_WIDTH, &w)) {
+ if (w > HR_ATTR_WIDTH_MAX) {
+ w = HR_ATTR_WIDTH_MAX;
+ }
w = REAL_WIDTH(w, width);
- else
+ } else {
w = width;
+ }
parsedtag_get_value(tag, ATTR_ALIGN, &x);
switch (x) {