head 1.1; access; symbols pkgsrc-2026Q1:1.1.0.78 pkgsrc-2026Q1-base:1.1 pkgsrc-2025Q4:1.1.0.76 pkgsrc-2025Q4-base:1.1 pkgsrc-2025Q3:1.1.0.74 pkgsrc-2025Q3-base:1.1 pkgsrc-2025Q2:1.1.0.72 pkgsrc-2025Q2-base:1.1 pkgsrc-2025Q1:1.1.0.70 pkgsrc-2025Q1-base:1.1 pkgsrc-2024Q4:1.1.0.68 pkgsrc-2024Q4-base:1.1 pkgsrc-2024Q3:1.1.0.66 pkgsrc-2024Q3-base:1.1 pkgsrc-2024Q2:1.1.0.64 pkgsrc-2024Q2-base:1.1 pkgsrc-2024Q1:1.1.0.62 pkgsrc-2024Q1-base:1.1 pkgsrc-2023Q4:1.1.0.60 pkgsrc-2023Q4-base:1.1 pkgsrc-2023Q3:1.1.0.58 pkgsrc-2023Q3-base:1.1 pkgsrc-2023Q2:1.1.0.56 pkgsrc-2023Q2-base:1.1 pkgsrc-2023Q1:1.1.0.54 pkgsrc-2023Q1-base:1.1 pkgsrc-2022Q4:1.1.0.52 pkgsrc-2022Q4-base:1.1 pkgsrc-2022Q3:1.1.0.50 pkgsrc-2022Q3-base:1.1 pkgsrc-2022Q2:1.1.0.48 pkgsrc-2022Q2-base:1.1 pkgsrc-2022Q1:1.1.0.46 pkgsrc-2022Q1-base:1.1 pkgsrc-2021Q4:1.1.0.44 pkgsrc-2021Q4-base:1.1 pkgsrc-2021Q3:1.1.0.42 pkgsrc-2021Q3-base:1.1 pkgsrc-2021Q2:1.1.0.40 pkgsrc-2021Q2-base:1.1 pkgsrc-2021Q1:1.1.0.38 pkgsrc-2021Q1-base:1.1 pkgsrc-2020Q4:1.1.0.36 pkgsrc-2020Q4-base:1.1 pkgsrc-2020Q3:1.1.0.34 pkgsrc-2020Q3-base:1.1 pkgsrc-2020Q2:1.1.0.30 pkgsrc-2020Q2-base:1.1 pkgsrc-2020Q1:1.1.0.10 pkgsrc-2020Q1-base:1.1 pkgsrc-2019Q4:1.1.0.32 pkgsrc-2019Q4-base:1.1 pkgsrc-2019Q3:1.1.0.28 pkgsrc-2019Q3-base:1.1 pkgsrc-2019Q2:1.1.0.26 pkgsrc-2019Q2-base:1.1 pkgsrc-2019Q1:1.1.0.24 pkgsrc-2019Q1-base:1.1 pkgsrc-2018Q4:1.1.0.22 pkgsrc-2018Q4-base:1.1 pkgsrc-2018Q3:1.1.0.20 pkgsrc-2018Q3-base:1.1 pkgsrc-2018Q2:1.1.0.18 pkgsrc-2018Q2-base:1.1 pkgsrc-2018Q1:1.1.0.16 pkgsrc-2018Q1-base:1.1 pkgsrc-2017Q4:1.1.0.14 pkgsrc-2017Q4-base:1.1 pkgsrc-2017Q3:1.1.0.12 pkgsrc-2017Q3-base:1.1 pkgsrc-2017Q2:1.1.0.8 pkgsrc-2017Q2-base:1.1 pkgsrc-2017Q1:1.1.0.6 pkgsrc-2017Q1-base:1.1 pkgsrc-2016Q4:1.1.0.4 pkgsrc-2016Q4-base:1.1 pkgsrc-2016Q3:1.1.0.2; locks; strict; comment @# @; 1.1 date 2016.10.30.20.49.57; author spz; state Exp; branches 1.1.2.1; next ; commitid Fz69TSK4vDt78dsz; 1.1.2.1 date 2016.10.30.20.49.57; author bsiegert; state dead; branches; next 1.1.2.2; commitid ANIsjLsenHMMFIsz; 1.1.2.2 date 2016.11.03.19.50.12; author bsiegert; state Exp; branches; next ; commitid ANIsjLsenHMMFIsz; desc @@ 1.1 log @add a patch for CVE-2016-6318 from https://bugzilla.redhat.com/attachment.cgi?id=1188599 @ text @patch to cracklib 2.7 based on a patch for cracklib 2.9 from https://bugzilla.redhat.com/attachment.cgi?id=1188599 : It is not safe to pass words longer than STRINGSIZE further to cracklib so the longbuffer cannot be longer than STRINGSIZE. --- ./cracklib/fascist.c.orig 1997-12-31 10:26:46.000000000 +0000 +++ ./cracklib/fascist.c 2016-10-27 19:00:46.000000000 +0000 @@@@ -490,7 +490,7 @@@@ FascistGecos(password, uid) char gbuffer[STRINGSIZE]; char tbuffer[STRINGSIZE]; char *uwords[STRINGSIZE]; - char longbuffer[STRINGSIZE * 2]; + char longbuffer[STRINGSIZE]; if (!(pwp = getpwuid(uid))) { @@@@ -573,38 +573,47 @@@@ FascistGecos(password, uid) { for (i = 0; i < j; i++) { - strcpy(longbuffer, uwords[i]); - strcat(longbuffer, uwords[j]); - - if (GTry(longbuffer, password)) + if (strlen(uwords[i]) + strlen(uwords[j]) < STRINGSIZE) { - return ("it is derived from your password entry"); - } - - strcpy(longbuffer, uwords[j]); - strcat(longbuffer, uwords[i]); + strcpy(longbuffer, uwords[i]); + strcat(longbuffer, uwords[j]); - if (GTry(longbuffer, password)) - { - return ("it's derived from your password entry"); + if (GTry(longbuffer, password)) + { + return ("it is derived from your password entry"); + } + + strcpy(longbuffer, uwords[j]); + strcat(longbuffer, uwords[i]); + + if (GTry(longbuffer, password)) + { + return ("it's derived from your password entry"); + } } - longbuffer[0] = uwords[i][0]; - longbuffer[1] = '\0'; - strcat(longbuffer, uwords[j]); - - if (GTry(longbuffer, password)) + if (strlen(uwords[j]) < STRINGSIZE - 1) { - return ("it is derivable from your password entry"); + longbuffer[0] = uwords[i][0]; + longbuffer[1] = '\0'; + strcat(longbuffer, uwords[j]); + + if (GTry(longbuffer, password)) + { + return ("it is derivable from your password entry"); + } } - longbuffer[0] = uwords[j][0]; - longbuffer[1] = '\0'; - strcat(longbuffer, uwords[i]); - - if (GTry(longbuffer, password)) + if (strlen(uwords[i]) < STRINGSIZE - 1) { - return ("it's derivable from your password entry"); + longbuffer[0] = uwords[j][0]; + longbuffer[1] = '\0'; + strcat(longbuffer, uwords[i]); + + if (GTry(longbuffer, password)) + { + return ("it's derivable from your password entry"); + } } } } @ 1.1.2.1 log @file patch-CVE-2016-6318 was added on branch pkgsrc-2016Q3 on 2016-11-03 19:50:12 +0000 @ text @d1 89 @ 1.1.2.2 log @Pullup ticket #5147 - requested by spz security/libcrack: security fix Revisions pulled up: - security/libcrack/Makefile 1.19 - security/libcrack/distinfo 1.8 - security/libcrack/patches/patch-CVE-2016-6318 1.1 --- Module Name: pkgsrc Committed By: spz Date: Sun Oct 30 20:49:58 UTC 2016 Modified Files: pkgsrc/security/libcrack: Makefile distinfo Added Files: pkgsrc/security/libcrack/patches: patch-CVE-2016-6318 Log Message: add a patch for CVE-2016-6318 from https://bugzilla.redhat.com/attachment.cgi?id=1188599 @ text @a0 89 patch to cracklib 2.7 based on a patch for cracklib 2.9 from https://bugzilla.redhat.com/attachment.cgi?id=1188599 : It is not safe to pass words longer than STRINGSIZE further to cracklib so the longbuffer cannot be longer than STRINGSIZE. --- ./cracklib/fascist.c.orig 1997-12-31 10:26:46.000000000 +0000 +++ ./cracklib/fascist.c 2016-10-27 19:00:46.000000000 +0000 @@@@ -490,7 +490,7 @@@@ FascistGecos(password, uid) char gbuffer[STRINGSIZE]; char tbuffer[STRINGSIZE]; char *uwords[STRINGSIZE]; - char longbuffer[STRINGSIZE * 2]; + char longbuffer[STRINGSIZE]; if (!(pwp = getpwuid(uid))) { @@@@ -573,38 +573,47 @@@@ FascistGecos(password, uid) { for (i = 0; i < j; i++) { - strcpy(longbuffer, uwords[i]); - strcat(longbuffer, uwords[j]); - - if (GTry(longbuffer, password)) + if (strlen(uwords[i]) + strlen(uwords[j]) < STRINGSIZE) { - return ("it is derived from your password entry"); - } - - strcpy(longbuffer, uwords[j]); - strcat(longbuffer, uwords[i]); + strcpy(longbuffer, uwords[i]); + strcat(longbuffer, uwords[j]); - if (GTry(longbuffer, password)) - { - return ("it's derived from your password entry"); + if (GTry(longbuffer, password)) + { + return ("it is derived from your password entry"); + } + + strcpy(longbuffer, uwords[j]); + strcat(longbuffer, uwords[i]); + + if (GTry(longbuffer, password)) + { + return ("it's derived from your password entry"); + } } - longbuffer[0] = uwords[i][0]; - longbuffer[1] = '\0'; - strcat(longbuffer, uwords[j]); - - if (GTry(longbuffer, password)) + if (strlen(uwords[j]) < STRINGSIZE - 1) { - return ("it is derivable from your password entry"); + longbuffer[0] = uwords[i][0]; + longbuffer[1] = '\0'; + strcat(longbuffer, uwords[j]); + + if (GTry(longbuffer, password)) + { + return ("it is derivable from your password entry"); + } } - longbuffer[0] = uwords[j][0]; - longbuffer[1] = '\0'; - strcat(longbuffer, uwords[i]); - - if (GTry(longbuffer, password)) + if (strlen(uwords[i]) < STRINGSIZE - 1) { - return ("it's derivable from your password entry"); + longbuffer[0] = uwords[j][0]; + longbuffer[1] = '\0'; + strcat(longbuffer, uwords[i]); + + if (GTry(longbuffer, password)) + { + return ("it's derivable from your password entry"); + } } } } @