diff -u libfs-1.0.3/debian/changelog libfs-1.0.3/debian/changelog --- libfs-1.0.3/debian/changelog +++ libfs-1.0.3/debian/changelog @@ -1,3 +1,12 @@ +libfs (2:1.0.3-1ubuntu0.1) precise-security; urgency=low + + * SECURITY UPDATE: denial of service and possible code execution via + incorrect memory size calculations + - 26dc23446c2e7818fdebfb46e101bac4883df07e + - CVE-2013-1996 + + -- Marc Deslauriers Mon, 27 May 2013 14:33:41 -0400 + libfs (2:1.0.3-1) unstable; urgency=low [ Timo Aaltonen ] diff -u libfs-1.0.3/debian/control libfs-1.0.3/debian/control --- libfs-1.0.3/debian/control +++ libfs-1.0.3/debian/control @@ -1,7 +1,8 @@ Source: libfs Section: x11 Priority: optional -Maintainer: Debian X Strike Force +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Debian X Strike Force Uploaders: David Nusinow , Brice Goglin , Cyril Brulebois Build-Depends: debhelper (>= 5.0.0), only in patch2: unchanged: --- libfs-1.0.3.orig/src/FSOpenServ.c +++ libfs-1.0.3/src/FSOpenServ.c @@ -111,10 +111,10 @@ char *setup = NULL; fsConnSetupAccept conn; char *auth_data = NULL; - char *alt_data = NULL, + unsigned char *alt_data = NULL, *ad; AlternateServer *alts = NULL; - int altlen; + unsigned int altlen; char *vendor_string; unsigned long setuplength; @@ -158,7 +158,7 @@ setuplength = prefix.alternate_len << 2; if (setuplength > (SIZE_MAX>>2) - || (alt_data = (char *) + || (alt_data = (unsigned char *) (setup = FSmalloc((unsigned) setuplength))) == NULL) { goto fail; } @@ -178,7 +178,7 @@ } for (i = 0; i < prefix.num_alternates; i++) { alts[i].subset = (Bool) *ad++; - altlen = (int) *ad++; + altlen = (unsigned int) *ad++; alts[i].name = (char *) FSmalloc(altlen + 1); if (!alts[i].name) { while (--i) {