rpms/lynx/F-7 lynx-2.8.6-fmt_string.patch, NONE, 1.1 lynx.spec, 1.40, 1.41
Jiří Moskovčák (jmoskovc)
fedora-extras-commits at redhat.com
Wed Jan 9 12:40:12 UTC 2008
Author: jmoskovc
Update of /cvs/extras/rpms/lynx/F-7
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv9975
Modified Files:
lynx.spec
Added Files:
lynx-2.8.6-fmt_string.patch
Log Message:
Fixed crash when using formatting character '$' in translation.
lynx-2.8.6-fmt_string.patch:
--- NEW FILE lynx-2.8.6-fmt_string.patch ---
--- lynx2-8-6/WWW/Library/Implementation/HTString.c_old 2007/05/16 21:44:23 1.49
+++ lynx2-8-6/WWW/Library/Implementation/HTString.c 2008/01/09 00:06:06
@@ -619,6 +619,46 @@
const char *fmt,
va_list * ap)
{
+#ifdef HAVE_VASPRINTF
+ /*
+ * Use vasprintf() if we have it, since it is simplest.
+ */
+ char *result = 0;
+ char *temp = 0;
+
+ /* discard old destination if no length was given */
+ if (pstr && !dst_len) {
+ if (*pstr)
+ FREE(*pstr);
+ }
+
+ if (vasprintf(&temp, fmt, *ap) >= 0) {
+ if (dst_len != 0) {
+ int src_len = strlen(temp);
+ int new_len = dst_len + src_len + 1;
+
+ result = HTAlloc(pstr ? *pstr : 0, new_len);
+ if (result != 0) {
+ strcpy(result + dst_len, temp);
+ mark_malloced(temp, new_len);
+ }
+ free(temp);
+ } else {
+ result = temp;
+ mark_malloced(temp, strlen(temp));
+ }
+ }
+
+ if (pstr != 0)
+ *pstr = result;
+
+ return result;
+#else /* !HAVE_VASPRINTF */
+ /*
+ * If vasprintf() is not available, this works - but does not implement
+ * the POSIX '$' formatting character which may be used in some of the
+ * ".po" files.
+ */
#ifdef SAVE_TIME_NOT_SPACE
static size_t tmp_len = 0;
static size_t fmt_len = 0;
@@ -634,20 +674,9 @@
char *dst_ptr = *pstr;
const char *format = fmt;
- if (fmt == 0 || *fmt == '\0')
+ if (isEmpty(fmt))
return 0;
-#ifdef USE_VASPRINTF
- if (pstr && !dst_len) {
- if (*pstr)
- FREE(*pstr);
- if (vasprintf(pstr, fmt, *ap) >= 0) {
- mark_malloced(*pstr, strlen(*pstr) + 1);
- return (*pstr);
- }
- }
-#endif /* USE_VASPRINTF */
-
need = strlen(fmt) + 1;
#ifdef SAVE_TIME_NOT_SPACE
if (!fmt_ptr || fmt_len < need * NUM_WIDTH) {
@@ -848,6 +877,7 @@
if (pstr)
*pstr = dst_ptr;
return (dst_ptr);
+#endif /* HAVE_VASPRINTF */
}
#undef SAVE_TIME_NOT_SPACE
@@ -895,16 +925,7 @@
LYva_start(ap, fmt);
{
-#ifdef USE_VASPRINTF
- if (pstr) {
- if (*pstr)
- FREE(*pstr);
- if (vasprintf(pstr, fmt, ap) >= 0) /* else call outofmem?? */
- mark_malloced(*pstr, strlen(*pstr) + 1);
- result = *pstr;
- } else
-#endif /* USE_VASPRINTF */
- result = StrAllocVsprintf(pstr, 0, fmt, &ap);
+ result = StrAllocVsprintf(pstr, 0, fmt, &ap);
}
va_end(ap);
Index: lynx.spec
===================================================================
RCS file: /cvs/extras/rpms/lynx/F-7/lynx.spec,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -r1.40 -r1.41
--- lynx.spec 23 Feb 2007 12:24:14 -0000 1.40
+++ lynx.spec 9 Jan 2008 12:39:35 -0000 1.41
@@ -1,13 +1,14 @@
Summary: A text-based Web browser
Name: lynx
Version: 2.8.6
-Release: 3%{?dist}
+Release: 4%{?dist}
License: GPL
Group: Applications/Internet
Source: http://lynx.isc.org/current/lynx%{version}.tar.bz2
URL: http://lynx.isc.org/
Patch0: lynx-2.8.6-redhat.patch
Patch1: lynx-crash.patch
+Patch2: lynx-2.8.6-fmt_string.patch
Requires: indexhtml
Provides: webclient
BuildRequires: openssl-devel, pkgconfig, ncurses-devel >= 5.3-5,
@@ -24,6 +25,7 @@
%setup -q -n lynx2-8-6
%patch0 -p1 -b .redhat
%patch1 -p1 -b .crash
+%patch2 -p1 -b .fmt_string
perl -pi -e "s,^HELPFILE:.*,HELPFILE:file://localhost/usr/share/doc/lynx-%{version}/lynx_help/lynx_help_main.html,g" lynx.cfg
perl -pi -e "s,^DEFAULT_INDEX_FILE:.*,DEFAULT_INDEX_FILE:http://www.google.com/,g" lynx.cfg
perl -pi -e 's,^#LOCALE_CHARSET:.*,LOCALE_CHARSET:TRUE,' lynx.cfg
@@ -95,6 +97,10 @@
%config(noreplace,missingok) %{_sysconfdir}/lynx-site.cfg
%changelog
+* Wed Jan 9 2008 Jiri Moskovcak <jmoskovc at redhat.com> - 2.8.6-4
+- fixed crash when using formatting character '$' in translation
+- Resolves: #426449
+
* Fri Feb 23 2007 Ivana Varekova <varekova at redhat.com> - 2.8.6-3
- incorporate package review feedback (#226113)
More information about the fedora-extras-commits
mailing list