[web] Added the Defensive Coding book

Eric Christensen sparks at fedoraproject.org
Tue Mar 12 03:15:18 UTC 2013


commit e1ab299055d2472c121f0f17c65a0299b01c6b33
Author: Eric Christensen <sparks at fedoraproject.org>
Date:   Mon Mar 11 23:14:12 2013 -0400

    Added the Defensive Coding book

 fedoradocs.db                                      |  Bin 905216 -> 905216 bytes
 public_html/Sitemap                                |   24 +
 public_html/as-IN/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/as-IN/opds-Defensive_Coding.xml        |   33 +
 public_html/as-IN/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/as-IN/opds-Fedora_Core.xml             |    2 +-
 .../as-IN/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/as-IN/opds-Fedora_Security_Team.xml    |   33 +
 public_html/as-IN/opds.xml                         |   20 +-
 public_html/as-IN/toc.html                         |   22 +
 public_html/bg-BG/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/bg-BG/opds-Defensive_Coding.xml        |   33 +
 public_html/bg-BG/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/bg-BG/opds-Fedora_Core.xml             |    2 +-
 .../bg-BG/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/bg-BG/opds-Fedora_Security_Team.xml    |   33 +
 public_html/bg-BG/opds.xml                         |   20 +-
 public_html/bg-BG/toc.html                         |   22 +
 public_html/bn-IN/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/bn-IN/opds-Defensive_Coding.xml        |   33 +
 public_html/bn-IN/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/bn-IN/opds-Fedora_Core.xml             |    2 +-
 .../bn-IN/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/bn-IN/opds-Fedora_Security_Team.xml    |   33 +
 public_html/bn-IN/opds.xml                         |   20 +-
 public_html/bn-IN/toc.html                         |   22 +
 public_html/bs-BA/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/bs-BA/opds-Defensive_Coding.xml        |   33 +
 public_html/bs-BA/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/bs-BA/opds-Fedora_Core.xml             |    2 +-
 .../bs-BA/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/bs-BA/opds-Fedora_Security_Team.xml    |   33 +
 public_html/bs-BA/opds.xml                         |   20 +-
 public_html/bs-BA/toc.html                         |   22 +
 public_html/ca-ES/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/ca-ES/opds-Defensive_Coding.xml        |   33 +
 public_html/ca-ES/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/ca-ES/opds-Fedora_Core.xml             |    2 +-
 .../ca-ES/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/ca-ES/opds-Fedora_Security_Team.xml    |   33 +
 public_html/ca-ES/opds.xml                         |   20 +-
 public_html/ca-ES/toc.html                         |   22 +
 public_html/cs-CZ/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/cs-CZ/opds-Defensive_Coding.xml        |   33 +
 public_html/cs-CZ/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/cs-CZ/opds-Fedora_Core.xml             |    2 +-
 .../cs-CZ/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/cs-CZ/opds-Fedora_Security_Team.xml    |   33 +
 public_html/cs-CZ/opds.xml                         |   20 +-
 public_html/cs-CZ/toc.html                         |   22 +
 public_html/da-DK/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/da-DK/opds-Defensive_Coding.xml        |   33 +
 public_html/da-DK/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/da-DK/opds-Fedora_Core.xml             |    2 +-
 .../da-DK/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/da-DK/opds-Fedora_Security_Team.xml    |   33 +
 public_html/da-DK/opds.xml                         |   20 +-
 public_html/da-DK/toc.html                         |   22 +
 public_html/de-DE/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/de-DE/opds-Defensive_Coding.xml        |   33 +
 public_html/de-DE/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/de-DE/opds-Fedora_Core.xml             |    2 +-
 .../de-DE/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/de-DE/opds-Fedora_Security_Team.xml    |   33 +
 public_html/de-DE/opds.xml                         |   20 +-
 public_html/de-DE/toc.html                         |   22 +
 public_html/el-GR/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/el-GR/opds-Defensive_Coding.xml        |   33 +
 public_html/el-GR/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/el-GR/opds-Fedora_Core.xml             |    2 +-
 .../el-GR/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/el-GR/opds-Fedora_Security_Team.xml    |   33 +
 public_html/el-GR/opds.xml                         |   20 +-
 public_html/el-GR/toc.html                         |   22 +
 ...dora_Security_Team--Defensive_Coding-en-US.epub |  Bin 0 -> 292484 bytes
 .../Defensive_Coding/Common_Content/css/common.css | 1528 +++++++++++++++
 .../Common_Content/css/default.css                 |    3 +
 .../Defensive_Coding/Common_Content/css/lang.css   |    2 +
 .../Common_Content/css/overrides.css               |   51 +
 .../Defensive_Coding/Common_Content/css/print.css  |   16 +
 .../Defensive_Coding/Common_Content/images/1.png   |  Bin 0 -> 710 bytes
 .../Defensive_Coding/Common_Content/images/1.svg   |   27 +
 .../Defensive_Coding/Common_Content/images/10.png  |  Bin 0 -> 985 bytes
 .../Defensive_Coding/Common_Content/images/10.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/11.png  |  Bin 0 -> 810 bytes
 .../Defensive_Coding/Common_Content/images/11.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/12.png  |  Bin 0 -> 1012 bytes
 .../Defensive_Coding/Common_Content/images/12.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/13.png  |  Bin 0 -> 1048 bytes
 .../Defensive_Coding/Common_Content/images/13.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/14.png  |  Bin 0 -> 914 bytes
 .../Defensive_Coding/Common_Content/images/14.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/15.png  |  Bin 0 -> 989 bytes
 .../Defensive_Coding/Common_Content/images/15.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/16.png  |  Bin 0 -> 1047 bytes
 .../Defensive_Coding/Common_Content/images/16.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/17.png  |  Bin 0 -> 888 bytes
 .../Defensive_Coding/Common_Content/images/17.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/18.png  |  Bin 0 -> 1075 bytes
 .../Defensive_Coding/Common_Content/images/18.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/19.png  |  Bin 0 -> 1049 bytes
 .../Defensive_Coding/Common_Content/images/19.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/2.png   |  Bin 0 -> 896 bytes
 .../Defensive_Coding/Common_Content/images/2.svg   |   27 +
 .../Defensive_Coding/Common_Content/images/20.png  |  Bin 0 -> 1151 bytes
 .../Defensive_Coding/Common_Content/images/20.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/21.png  |  Bin 0 -> 994 bytes
 .../Defensive_Coding/Common_Content/images/21.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/22.png  |  Bin 0 -> 1162 bytes
 .../Defensive_Coding/Common_Content/images/22.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/23.png  |  Bin 0 -> 1207 bytes
 .../Defensive_Coding/Common_Content/images/23.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/24.png  |  Bin 0 -> 1081 bytes
 .../Defensive_Coding/Common_Content/images/24.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/25.png  |  Bin 0 -> 1173 bytes
 .../Defensive_Coding/Common_Content/images/25.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/26.png  |  Bin 0 -> 1208 bytes
 .../Defensive_Coding/Common_Content/images/26.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/27.png  |  Bin 0 -> 1080 bytes
 .../Defensive_Coding/Common_Content/images/27.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/28.png  |  Bin 0 -> 1225 bytes
 .../Defensive_Coding/Common_Content/images/28.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/29.png  |  Bin 0 -> 1196 bytes
 .../Defensive_Coding/Common_Content/images/29.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/3.png   |  Bin 0 -> 958 bytes
 .../Defensive_Coding/Common_Content/images/3.svg   |   27 +
 .../Defensive_Coding/Common_Content/images/30.png  |  Bin 0 -> 1250 bytes
 .../Defensive_Coding/Common_Content/images/30.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/31.png  |  Bin 0 -> 1078 bytes
 .../Defensive_Coding/Common_Content/images/31.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/32.png  |  Bin 0 -> 1241 bytes
 .../Defensive_Coding/Common_Content/images/32.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/33.png  |  Bin 0 -> 1268 bytes
 .../Defensive_Coding/Common_Content/images/33.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/34.png  |  Bin 0 -> 1175 bytes
 .../Defensive_Coding/Common_Content/images/34.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/35.png  |  Bin 0 -> 1224 bytes
 .../Defensive_Coding/Common_Content/images/35.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/36.png  |  Bin 0 -> 1281 bytes
 .../Defensive_Coding/Common_Content/images/36.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/37.png  |  Bin 0 -> 1140 bytes
 .../Defensive_Coding/Common_Content/images/37.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/38.png  |  Bin 0 -> 1300 bytes
 .../Defensive_Coding/Common_Content/images/38.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/39.png  |  Bin 0 -> 1294 bytes
 .../Defensive_Coding/Common_Content/images/39.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/4.png   |  Bin 0 -> 849 bytes
 .../Defensive_Coding/Common_Content/images/4.svg   |   27 +
 .../Defensive_Coding/Common_Content/images/40.png  |  Bin 0 -> 1130 bytes
 .../Defensive_Coding/Common_Content/images/40.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/5.png   |  Bin 0 -> 900 bytes
 .../Defensive_Coding/Common_Content/images/5.svg   |   27 +
 .../Defensive_Coding/Common_Content/images/6.png   |  Bin 0 -> 929 bytes
 .../Defensive_Coding/Common_Content/images/6.svg   |   27 +
 .../Defensive_Coding/Common_Content/images/7.png   |  Bin 0 -> 807 bytes
 .../Defensive_Coding/Common_Content/images/7.svg   |   27 +
 .../Defensive_Coding/Common_Content/images/8.png   |  Bin 0 -> 962 bytes
 .../Defensive_Coding/Common_Content/images/8.svg   |   27 +
 .../Defensive_Coding/Common_Content/images/9.png   |  Bin 0 -> 936 bytes
 .../Defensive_Coding/Common_Content/images/9.svg   |   27 +
 .../Common_Content/images/bkgrnd_greydots.png      |  Bin 0 -> 157 bytes
 .../Common_Content/images/bullet_arrowblue.png     |  Bin 0 -> 177 bytes
 .../Common_Content/images/documentation.png        |  Bin 0 -> 623 bytes
 .../Defensive_Coding/Common_Content/images/dot.png |  Bin 0 -> 98 bytes
 .../Common_Content/images/dot2.png                 |  Bin 0 -> 98 bytes
 .../Common_Content/images/green.png                |  Bin 0 -> 176 bytes
 .../Common_Content/images/h1-bg.png                |  Bin 0 -> 565 bytes
 .../Common_Content/images/image_left.png           |  Bin 0 -> 1114 bytes
 .../Common_Content/images/image_right.png          |  Bin 0 -> 2260 bytes
 .../Common_Content/images/important.png            |  Bin 0 -> 2080 bytes
 .../Common_Content/images/important.svg            |  106 ++
 .../Common_Content/images/logo.png                 |  Bin 0 -> 1114 bytes
 .../Common_Content/images/note.png                 |  Bin 0 -> 1241 bytes
 .../Common_Content/images/note.svg                 |  111 ++
 .../Defensive_Coding/Common_Content/images/red.png |  Bin 0 -> 163 bytes
 .../Common_Content/images/shade.png                |  Bin 0 -> 101 bytes
 .../Common_Content/images/shine.png                |  Bin 0 -> 146 bytes
 .../Common_Content/images/stock-go-back.png        |  Bin 0 -> 828 bytes
 .../Common_Content/images/stock-go-forward.png     |  Bin 0 -> 828 bytes
 .../Common_Content/images/stock-go-up.png          |  Bin 0 -> 760 bytes
 .../Common_Content/images/stock-home.png           |  Bin 0 -> 808 bytes
 .../Common_Content/images/title_logo.png           |  Bin 0 -> 13399 bytes
 .../Common_Content/images/title_logo.svg           |   61 +
 .../Common_Content/images/warning.png              |  Bin 0 -> 1340 bytes
 .../Common_Content/images/warning.svg              |   89 +
 .../Common_Content/images/watermark-draft.png      |  Bin 0 -> 25365 bytes
 .../Common_Content/images/yellow.png               |  Bin 0 -> 175 bytes
 .../html-single/Defensive_Coding/index.html        | 1951 ++++++++++++++++++++
 .../Defensive_Coding/Common_Content/css/common.css | 1528 +++++++++++++++
 .../Common_Content/css/default.css                 |    3 +
 .../Defensive_Coding/Common_Content/css/lang.css   |    2 +
 .../Common_Content/css/overrides.css               |   51 +
 .../Defensive_Coding/Common_Content/css/print.css  |   16 +
 .../Defensive_Coding/Common_Content/images/1.png   |  Bin 0 -> 710 bytes
 .../Defensive_Coding/Common_Content/images/1.svg   |   27 +
 .../Defensive_Coding/Common_Content/images/10.png  |  Bin 0 -> 985 bytes
 .../Defensive_Coding/Common_Content/images/10.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/11.png  |  Bin 0 -> 810 bytes
 .../Defensive_Coding/Common_Content/images/11.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/12.png  |  Bin 0 -> 1012 bytes
 .../Defensive_Coding/Common_Content/images/12.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/13.png  |  Bin 0 -> 1048 bytes
 .../Defensive_Coding/Common_Content/images/13.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/14.png  |  Bin 0 -> 914 bytes
 .../Defensive_Coding/Common_Content/images/14.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/15.png  |  Bin 0 -> 989 bytes
 .../Defensive_Coding/Common_Content/images/15.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/16.png  |  Bin 0 -> 1047 bytes
 .../Defensive_Coding/Common_Content/images/16.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/17.png  |  Bin 0 -> 888 bytes
 .../Defensive_Coding/Common_Content/images/17.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/18.png  |  Bin 0 -> 1075 bytes
 .../Defensive_Coding/Common_Content/images/18.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/19.png  |  Bin 0 -> 1049 bytes
 .../Defensive_Coding/Common_Content/images/19.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/2.png   |  Bin 0 -> 896 bytes
 .../Defensive_Coding/Common_Content/images/2.svg   |   27 +
 .../Defensive_Coding/Common_Content/images/20.png  |  Bin 0 -> 1151 bytes
 .../Defensive_Coding/Common_Content/images/20.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/21.png  |  Bin 0 -> 994 bytes
 .../Defensive_Coding/Common_Content/images/21.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/22.png  |  Bin 0 -> 1162 bytes
 .../Defensive_Coding/Common_Content/images/22.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/23.png  |  Bin 0 -> 1207 bytes
 .../Defensive_Coding/Common_Content/images/23.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/24.png  |  Bin 0 -> 1081 bytes
 .../Defensive_Coding/Common_Content/images/24.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/25.png  |  Bin 0 -> 1173 bytes
 .../Defensive_Coding/Common_Content/images/25.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/26.png  |  Bin 0 -> 1208 bytes
 .../Defensive_Coding/Common_Content/images/26.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/27.png  |  Bin 0 -> 1080 bytes
 .../Defensive_Coding/Common_Content/images/27.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/28.png  |  Bin 0 -> 1225 bytes
 .../Defensive_Coding/Common_Content/images/28.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/29.png  |  Bin 0 -> 1196 bytes
 .../Defensive_Coding/Common_Content/images/29.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/3.png   |  Bin 0 -> 958 bytes
 .../Defensive_Coding/Common_Content/images/3.svg   |   27 +
 .../Defensive_Coding/Common_Content/images/30.png  |  Bin 0 -> 1250 bytes
 .../Defensive_Coding/Common_Content/images/30.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/31.png  |  Bin 0 -> 1078 bytes
 .../Defensive_Coding/Common_Content/images/31.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/32.png  |  Bin 0 -> 1241 bytes
 .../Defensive_Coding/Common_Content/images/32.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/33.png  |  Bin 0 -> 1268 bytes
 .../Defensive_Coding/Common_Content/images/33.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/34.png  |  Bin 0 -> 1175 bytes
 .../Defensive_Coding/Common_Content/images/34.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/35.png  |  Bin 0 -> 1224 bytes
 .../Defensive_Coding/Common_Content/images/35.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/36.png  |  Bin 0 -> 1281 bytes
 .../Defensive_Coding/Common_Content/images/36.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/37.png  |  Bin 0 -> 1140 bytes
 .../Defensive_Coding/Common_Content/images/37.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/38.png  |  Bin 0 -> 1300 bytes
 .../Defensive_Coding/Common_Content/images/38.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/39.png  |  Bin 0 -> 1294 bytes
 .../Defensive_Coding/Common_Content/images/39.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/4.png   |  Bin 0 -> 849 bytes
 .../Defensive_Coding/Common_Content/images/4.svg   |   27 +
 .../Defensive_Coding/Common_Content/images/40.png  |  Bin 0 -> 1130 bytes
 .../Defensive_Coding/Common_Content/images/40.svg  |   31 +
 .../Defensive_Coding/Common_Content/images/5.png   |  Bin 0 -> 900 bytes
 .../Defensive_Coding/Common_Content/images/5.svg   |   27 +
 .../Defensive_Coding/Common_Content/images/6.png   |  Bin 0 -> 929 bytes
 .../Defensive_Coding/Common_Content/images/6.svg   |   27 +
 .../Defensive_Coding/Common_Content/images/7.png   |  Bin 0 -> 807 bytes
 .../Defensive_Coding/Common_Content/images/7.svg   |   27 +
 .../Defensive_Coding/Common_Content/images/8.png   |  Bin 0 -> 962 bytes
 .../Defensive_Coding/Common_Content/images/8.svg   |   27 +
 .../Defensive_Coding/Common_Content/images/9.png   |  Bin 0 -> 936 bytes
 .../Defensive_Coding/Common_Content/images/9.svg   |   27 +
 .../Common_Content/images/bkgrnd_greydots.png      |  Bin 0 -> 157 bytes
 .../Common_Content/images/bullet_arrowblue.png     |  Bin 0 -> 177 bytes
 .../Common_Content/images/documentation.png        |  Bin 0 -> 623 bytes
 .../Defensive_Coding/Common_Content/images/dot.png |  Bin 0 -> 98 bytes
 .../Common_Content/images/dot2.png                 |  Bin 0 -> 98 bytes
 .../Common_Content/images/green.png                |  Bin 0 -> 176 bytes
 .../Common_Content/images/h1-bg.png                |  Bin 0 -> 565 bytes
 .../Common_Content/images/image_left.png           |  Bin 0 -> 1114 bytes
 .../Common_Content/images/image_right.png          |  Bin 0 -> 2260 bytes
 .../Common_Content/images/important.png            |  Bin 0 -> 2080 bytes
 .../Common_Content/images/important.svg            |  106 ++
 .../Common_Content/images/logo.png                 |  Bin 0 -> 1114 bytes
 .../Common_Content/images/note.png                 |  Bin 0 -> 1241 bytes
 .../Common_Content/images/note.svg                 |  111 ++
 .../Defensive_Coding/Common_Content/images/red.png |  Bin 0 -> 163 bytes
 .../Common_Content/images/shade.png                |  Bin 0 -> 101 bytes
 .../Common_Content/images/shine.png                |  Bin 0 -> 146 bytes
 .../Common_Content/images/stock-go-back.png        |  Bin 0 -> 828 bytes
 .../Common_Content/images/stock-go-forward.png     |  Bin 0 -> 828 bytes
 .../Common_Content/images/stock-go-up.png          |  Bin 0 -> 760 bytes
 .../Common_Content/images/stock-home.png           |  Bin 0 -> 808 bytes
 .../Common_Content/images/title_logo.png           |  Bin 0 -> 13399 bytes
 .../Common_Content/images/title_logo.svg           |   61 +
 .../Common_Content/images/warning.png              |  Bin 0 -> 1340 bytes
 .../Common_Content/images/warning.svg              |   89 +
 .../Common_Content/images/watermark-draft.png      |  Bin 0 -> 25365 bytes
 .../Common_Content/images/yellow.png               |  Bin 0 -> 175 bytes
 ...pe-UEFI_Secure_Boot_Guide-Revision_History.html |   13 +
 .../html/Defensive_Coding/ch01s03s04.html          |   17 +
 .../html/Defensive_Coding/ch01s03s05.html          |   11 +
 .../html/Defensive_Coding/ch03s02.html             |   19 +
 .../html/Defensive_Coding/ch03s03.html             |    9 +
 .../html/Defensive_Coding/ch04s02.html             |   11 +
 .../html/Defensive_Coding/ch04s04.html             |   25 +
 .../html/Defensive_Coding/ch07s02.html             |   15 +
 .../html/Defensive_Coding/ch07s03.html             |   15 +
 .../html/Defensive_Coding/ch07s05.html             |   21 +
 .../html/Defensive_Coding/ch08s02.html             |   19 +
 .../html/Defensive_Coding/ch08s03.html             |   39 +
 .../html/Defensive_Coding/ch08s05.html             |   13 +
 .../html/Defensive_Coding/ch09s02.html             |    9 +
 .../html/Defensive_Coding/ch09s03.html             |   25 +
 .../html/Defensive_Coding/ch09s05.html             |   13 +
 .../html/Defensive_Coding/ch10s02.html             |   29 +
 .../chap-Defensive_Coding-Authentication.html      |   21 +
 .../Defensive_Coding/chap-Defensive_Coding-C.html  |  110 ++
 .../chap-Defensive_Coding-CXX.html                 |   53 +
 .../chap-Defensive_Coding-Python.html              |   21 +
 .../chap-Defensive_Coding-TLS.html                 |  104 ++
 .../chap-Defensive_Coding-Tasks-Cryptography.html  |   37 +
 .../chap-Defensive_Coding-Tasks-File_System.html   |   39 +
 ...chap-Defensive_Coding-Tasks-Library_Design.html |   27 +
 .../chap-Defensive_Coding-Tasks-Serialization.html |   13 +
 ...Defensive_Coding-Tasks-Temporary_Directory.html |   13 +
 ...hap-Defensive_Coding-Tasks-Temporary_Files.html |   33 +
 .../html/Defensive_Coding/index.html               |   32 +
 .../html/Defensive_Coding/pt01.html                |    7 +
 .../html/Defensive_Coding/pt02.html                |    7 +
 .../html/Defensive_Coding/pt03.html                |    7 +
 ...Defensive_Coding-Authentication-Host_based.html |   19 +
 ...ct-Defensive_Coding-Authentication-Netlink.html |   13 +
 ...efensive_Coding-Authentication-UNIX_Domain.html |   15 +
 .../sect-Defensive_Coding-C-Allocators-Arrays.html |   11 +
 .../sect-Defensive_Coding-C-Allocators-alloca.html |   19 +
 .../sect-Defensive_Coding-C-Allocators.html        |   21 +
 .../sect-Defensive_Coding-C-Avoid.html             |   33 +
 .../sect-Defensive_Coding-C-Libc.html              |   35 +
 ...Defensive_Coding-C-String-Functions-Length.html |   37 +
 .../sect-Defensive_Coding-CXX-Std.html             |   13 +
 .../sect-Defensive_Coding-TLS-Client-GNUTLS.html   |  188 ++
 .../sect-Defensive_Coding-TLS-Client-NSS.html      |  231 +++
 .../sect-Defensive_Coding-TLS-Client-OpenJDK.html  |  170 ++
 .../sect-Defensive_Coding-TLS-Client-Python.html   |   67 +
 .../sect-Defensive_Coding-TLS-Client.html          |  204 ++
 ...e_Coding-Tasks-Descriptors-Child_Processes.html |   23 +
 ...t-Defensive_Coding-Tasks-Descriptors-Limit.html |   27 +
 .../sect-Defensive_Coding-Tasks-Descriptors.html   |   31 +
 ...efensive_Coding-Tasks-File_System-Features.html |   33 +
 ...Defensive_Coding-Tasks-File_System-Foreign.html |   15 +
 ...ensive_Coding-Tasks-File_System-Free_Space.html |    9 +
 ...-Defensive_Coding-Tasks-File_System-Limits.html |   11 +
 ...sive_Coding-Tasks-Library_Design-Callbacks.html |   19 +
 ...t-Defensive_Coding-Tasks-Processes-Daemons.html |   23 +
 ...nsive_Coding-Tasks-Processes-Fork-Parallel.html |    9 +
 .../sect-Defensive_Coding-Tasks-Processes.html     |   61 +
 ...ve_Coding-Tasks-Serialization-XML-Entities.html |   11 +
 ...nsive_Coding-Tasks-Serialization-XML-Expat.html |   36 +
 ...-Tasks-Serialization-XML-OpenJDK_Parse-SAX.html |   52 +
 ...ding-Tasks-Serialization-XML-OpenJDK_Parse.html |   79 +
 ..._Coding-Tasks-Serialization-XML-Validation.html |   11 +
 ...ve_Coding-Tasks-Serialization-XML-XInclude.html |   11 +
 ...t-Defensive_Coding-Tasks-Serialization-XML.html |   35 +
 ...edora_Security_Team--Defensive_Coding-en-US.pdf |  Bin 0 -> 489879 bytes
 public_html/en-US/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/en-US/opds-Defensive_Coding.xml        |   33 +
 public_html/en-US/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/en-US/opds-Fedora_Core.xml             |    2 +-
 .../en-US/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/en-US/opds-Fedora_Security_Team.xml    |   33 +
 public_html/en-US/opds.xml                         |   20 +-
 public_html/en-US/toc.html                         |   17 +
 public_html/es-ES/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/es-ES/opds-Defensive_Coding.xml        |   33 +
 public_html/es-ES/opds-Fedora.xml                  |    2 +-
 public_html/es-ES/opds-Fedora_15.xml               |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/es-ES/opds-Fedora_Core.xml             |    2 +-
 .../es-ES/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/es-ES/opds-Fedora_Security_Team.xml    |   33 +
 public_html/es-ES/opds.xml                         |   22 +-
 public_html/es-ES/toc.html                         |   22 +
 public_html/fa-IR/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/fa-IR/opds-Defensive_Coding.xml        |   33 +
 public_html/fa-IR/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/fa-IR/opds-Fedora_Core.xml             |    2 +-
 .../fa-IR/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/fa-IR/opds-Fedora_Security_Team.xml    |   33 +
 public_html/fa-IR/opds.xml                         |   20 +-
 public_html/fa-IR/toc.html                         |   22 +
 public_html/fi-FI/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/fi-FI/opds-Defensive_Coding.xml        |   33 +
 public_html/fi-FI/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/fi-FI/opds-Fedora_Core.xml             |    2 +-
 .../fi-FI/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/fi-FI/opds-Fedora_Security_Team.xml    |   33 +
 public_html/fi-FI/opds.xml                         |   20 +-
 public_html/fi-FI/toc.html                         |   22 +
 public_html/fr-FR/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/fr-FR/opds-Defensive_Coding.xml        |   33 +
 public_html/fr-FR/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/fr-FR/opds-Fedora_Core.xml             |    2 +-
 .../fr-FR/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/fr-FR/opds-Fedora_Security_Team.xml    |   33 +
 public_html/fr-FR/opds.xml                         |   20 +-
 public_html/fr-FR/toc.html                         |   22 +
 public_html/gu-IN/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/gu-IN/opds-Defensive_Coding.xml        |   33 +
 public_html/gu-IN/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/gu-IN/opds-Fedora_Core.xml             |    2 +-
 .../gu-IN/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/gu-IN/opds-Fedora_Security_Team.xml    |   33 +
 public_html/gu-IN/opds.xml                         |   20 +-
 public_html/gu-IN/toc.html                         |   22 +
 public_html/he-IL/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/he-IL/opds-Defensive_Coding.xml        |   33 +
 public_html/he-IL/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/he-IL/opds-Fedora_Core.xml             |    2 +-
 .../he-IL/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/he-IL/opds-Fedora_Security_Team.xml    |   33 +
 public_html/he-IL/opds.xml                         |   20 +-
 public_html/he-IL/toc.html                         |   22 +
 public_html/hi-IN/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/hi-IN/opds-Defensive_Coding.xml        |   33 +
 public_html/hi-IN/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/hi-IN/opds-Fedora_Core.xml             |    2 +-
 .../hi-IN/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/hi-IN/opds-Fedora_Security_Team.xml    |   33 +
 public_html/hi-IN/opds.xml                         |   20 +-
 public_html/hi-IN/toc.html                         |   22 +
 public_html/hu-HU/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/hu-HU/opds-Defensive_Coding.xml        |   33 +
 public_html/hu-HU/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/hu-HU/opds-Fedora_Core.xml             |    2 +-
 .../hu-HU/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/hu-HU/opds-Fedora_Security_Team.xml    |   33 +
 public_html/hu-HU/opds.xml                         |   20 +-
 public_html/hu-HU/toc.html                         |   22 +
 public_html/ia/Site_Statistics.html                |    8 +-
 .../ia/opds-Community_Services_Infrastructure.xml  |    2 +-
 public_html/ia/opds-Defensive_Coding.xml           |   33 +
 public_html/ia/opds-Fedora.xml                     |    2 +-
 .../ia/opds-Fedora_Contributor_Documentation.xml   |    2 +-
 public_html/ia/opds-Fedora_Core.xml                |    2 +-
 public_html/ia/opds-Fedora_Draft_Documentation.xml |    2 +-
 public_html/ia/opds-Fedora_Security_Team.xml       |   33 +
 public_html/ia/opds.xml                            |   20 +-
 public_html/ia/toc.html                            |   22 +
 public_html/id-ID/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/id-ID/opds-Defensive_Coding.xml        |   33 +
 public_html/id-ID/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/id-ID/opds-Fedora_Core.xml             |    2 +-
 .../id-ID/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/id-ID/opds-Fedora_Security_Team.xml    |   33 +
 public_html/id-ID/opds.xml                         |   20 +-
 public_html/id-ID/toc.html                         |   22 +
 public_html/it-IT/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/it-IT/opds-Defensive_Coding.xml        |   33 +
 public_html/it-IT/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/it-IT/opds-Fedora_Core.xml             |    2 +-
 .../it-IT/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/it-IT/opds-Fedora_Security_Team.xml    |   33 +
 public_html/it-IT/opds.xml                         |   20 +-
 public_html/it-IT/toc.html                         |   22 +
 public_html/ja-JP/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/ja-JP/opds-Defensive_Coding.xml        |   33 +
 public_html/ja-JP/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/ja-JP/opds-Fedora_Core.xml             |    2 +-
 .../ja-JP/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/ja-JP/opds-Fedora_Security_Team.xml    |   33 +
 public_html/ja-JP/opds.xml                         |   20 +-
 public_html/ja-JP/toc.html                         |   22 +
 public_html/kn-IN/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/kn-IN/opds-Defensive_Coding.xml        |   33 +
 public_html/kn-IN/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/kn-IN/opds-Fedora_Core.xml             |    2 +-
 .../kn-IN/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/kn-IN/opds-Fedora_Security_Team.xml    |   33 +
 public_html/kn-IN/opds.xml                         |   20 +-
 public_html/kn-IN/toc.html                         |   22 +
 public_html/ko-KR/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/ko-KR/opds-Defensive_Coding.xml        |   33 +
 public_html/ko-KR/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/ko-KR/opds-Fedora_Core.xml             |    2 +-
 .../ko-KR/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/ko-KR/opds-Fedora_Security_Team.xml    |   33 +
 public_html/ko-KR/opds.xml                         |   20 +-
 public_html/ko-KR/toc.html                         |   22 +
 public_html/ml-IN/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/ml-IN/opds-Defensive_Coding.xml        |   33 +
 public_html/ml-IN/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/ml-IN/opds-Fedora_Core.xml             |    2 +-
 .../ml-IN/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/ml-IN/opds-Fedora_Security_Team.xml    |   33 +
 public_html/ml-IN/opds.xml                         |   20 +-
 public_html/ml-IN/toc.html                         |   22 +
 public_html/mr-IN/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/mr-IN/opds-Defensive_Coding.xml        |   33 +
 public_html/mr-IN/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/mr-IN/opds-Fedora_Core.xml             |    2 +-
 .../mr-IN/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/mr-IN/opds-Fedora_Security_Team.xml    |   33 +
 public_html/mr-IN/opds.xml                         |   20 +-
 public_html/mr-IN/toc.html                         |   22 +
 public_html/nb-NO/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/nb-NO/opds-Defensive_Coding.xml        |   33 +
 public_html/nb-NO/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/nb-NO/opds-Fedora_Core.xml             |    2 +-
 .../nb-NO/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/nb-NO/opds-Fedora_Security_Team.xml    |   33 +
 public_html/nb-NO/opds.xml                         |   20 +-
 public_html/nb-NO/toc.html                         |   22 +
 public_html/nl-NL/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/nl-NL/opds-Defensive_Coding.xml        |   33 +
 public_html/nl-NL/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/nl-NL/opds-Fedora_Core.xml             |    2 +-
 .../nl-NL/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/nl-NL/opds-Fedora_Security_Team.xml    |   33 +
 public_html/nl-NL/opds.xml                         |   20 +-
 public_html/nl-NL/toc.html                         |   22 +
 public_html/opds.xml                               |   92 +-
 public_html/or-IN/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/or-IN/opds-Defensive_Coding.xml        |   33 +
 public_html/or-IN/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/or-IN/opds-Fedora_Core.xml             |    2 +-
 .../or-IN/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/or-IN/opds-Fedora_Security_Team.xml    |   33 +
 public_html/or-IN/opds.xml                         |   20 +-
 public_html/or-IN/toc.html                         |   22 +
 public_html/pa-IN/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/pa-IN/opds-Defensive_Coding.xml        |   33 +
 public_html/pa-IN/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/pa-IN/opds-Fedora_Core.xml             |    2 +-
 .../pa-IN/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/pa-IN/opds-Fedora_Security_Team.xml    |   33 +
 public_html/pa-IN/opds.xml                         |   20 +-
 public_html/pa-IN/toc.html                         |   22 +
 public_html/pl-PL/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/pl-PL/opds-Defensive_Coding.xml        |   33 +
 public_html/pl-PL/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/pl-PL/opds-Fedora_Core.xml             |    2 +-
 .../pl-PL/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/pl-PL/opds-Fedora_Security_Team.xml    |   33 +
 public_html/pl-PL/opds.xml                         |   20 +-
 public_html/pl-PL/toc.html                         |   22 +
 public_html/pt-BR/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/pt-BR/opds-Defensive_Coding.xml        |   33 +
 public_html/pt-BR/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/pt-BR/opds-Fedora_Core.xml             |    2 +-
 .../pt-BR/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/pt-BR/opds-Fedora_Security_Team.xml    |   33 +
 public_html/pt-BR/opds.xml                         |   20 +-
 public_html/pt-BR/toc.html                         |   22 +
 public_html/pt-PT/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/pt-PT/opds-Defensive_Coding.xml        |   33 +
 public_html/pt-PT/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/pt-PT/opds-Fedora_Core.xml             |    2 +-
 .../pt-PT/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/pt-PT/opds-Fedora_Security_Team.xml    |   33 +
 public_html/pt-PT/opds.xml                         |   20 +-
 public_html/pt-PT/toc.html                         |   22 +
 public_html/ro/Site_Statistics.html                |    8 +-
 .../ro/opds-Community_Services_Infrastructure.xml  |    2 +-
 public_html/ro/opds-Defensive_Coding.xml           |   33 +
 public_html/ro/opds-Fedora.xml                     |    2 +-
 .../ro/opds-Fedora_Contributor_Documentation.xml   |    2 +-
 public_html/ro/opds-Fedora_Core.xml                |    2 +-
 public_html/ro/opds-Fedora_Draft_Documentation.xml |    2 +-
 public_html/ro/opds-Fedora_Security_Team.xml       |   33 +
 public_html/ro/opds.xml                            |   20 +-
 public_html/ro/toc.html                            |   22 +
 public_html/ru-RU/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/ru-RU/opds-Defensive_Coding.xml        |   33 +
 public_html/ru-RU/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/ru-RU/opds-Fedora_Core.xml             |    2 +-
 .../ru-RU/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/ru-RU/opds-Fedora_Security_Team.xml    |   33 +
 public_html/ru-RU/opds.xml                         |   20 +-
 public_html/ru-RU/toc.html                         |   22 +
 public_html/sk-SK/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/sk-SK/opds-Defensive_Coding.xml        |   33 +
 public_html/sk-SK/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/sk-SK/opds-Fedora_Core.xml             |    2 +-
 .../sk-SK/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/sk-SK/opds-Fedora_Security_Team.xml    |   33 +
 public_html/sk-SK/opds.xml                         |   20 +-
 public_html/sk-SK/toc.html                         |   22 +
 public_html/sr-Latn-RS/Site_Statistics.html        |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/sr-Latn-RS/opds-Defensive_Coding.xml   |   33 +
 public_html/sr-Latn-RS/opds-Fedora.xml             |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/sr-Latn-RS/opds-Fedora_Core.xml        |    2 +-
 .../sr-Latn-RS/opds-Fedora_Draft_Documentation.xml |    2 +-
 .../sr-Latn-RS/opds-Fedora_Security_Team.xml       |   33 +
 public_html/sr-Latn-RS/opds.xml                    |   20 +-
 public_html/sr-Latn-RS/toc.html                    |   22 +
 public_html/sr-RS/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/sr-RS/opds-Defensive_Coding.xml        |   33 +
 public_html/sr-RS/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/sr-RS/opds-Fedora_Core.xml             |    2 +-
 .../sr-RS/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/sr-RS/opds-Fedora_Security_Team.xml    |   33 +
 public_html/sr-RS/opds.xml                         |   20 +-
 public_html/sr-RS/toc.html                         |   22 +
 public_html/sv-SE/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/sv-SE/opds-Defensive_Coding.xml        |   33 +
 public_html/sv-SE/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/sv-SE/opds-Fedora_Core.xml             |    2 +-
 .../sv-SE/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/sv-SE/opds-Fedora_Security_Team.xml    |   33 +
 public_html/sv-SE/opds.xml                         |   20 +-
 public_html/sv-SE/toc.html                         |   22 +
 public_html/ta-IN/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/ta-IN/opds-Defensive_Coding.xml        |   33 +
 public_html/ta-IN/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/ta-IN/opds-Fedora_Core.xml             |    2 +-
 .../ta-IN/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/ta-IN/opds-Fedora_Security_Team.xml    |   33 +
 public_html/ta-IN/opds.xml                         |   20 +-
 public_html/ta-IN/toc.html                         |   22 +
 public_html/te-IN/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/te-IN/opds-Defensive_Coding.xml        |   33 +
 public_html/te-IN/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/te-IN/opds-Fedora_Core.xml             |    2 +-
 .../te-IN/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/te-IN/opds-Fedora_Security_Team.xml    |   33 +
 public_html/te-IN/opds.xml                         |   20 +-
 public_html/te-IN/toc.html                         |   22 +
 public_html/toc.html                               |   24 +
 public_html/uk-UA/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/uk-UA/opds-Defensive_Coding.xml        |   33 +
 public_html/uk-UA/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/uk-UA/opds-Fedora_Core.xml             |    2 +-
 .../uk-UA/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/uk-UA/opds-Fedora_Security_Team.xml    |   33 +
 public_html/uk-UA/opds.xml                         |   20 +-
 public_html/uk-UA/toc.html                         |   22 +
 public_html/zh-CN/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/zh-CN/opds-Defensive_Coding.xml        |   33 +
 public_html/zh-CN/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/zh-CN/opds-Fedora_Core.xml             |    2 +-
 .../zh-CN/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/zh-CN/opds-Fedora_Security_Team.xml    |   33 +
 public_html/zh-CN/opds.xml                         |   20 +-
 public_html/zh-CN/toc.html                         |   22 +
 public_html/zh-TW/Site_Statistics.html             |    8 +-
 .../opds-Community_Services_Infrastructure.xml     |    2 +-
 public_html/zh-TW/opds-Defensive_Coding.xml        |   33 +
 public_html/zh-TW/opds-Fedora.xml                  |    2 +-
 .../opds-Fedora_Contributor_Documentation.xml      |    2 +-
 public_html/zh-TW/opds-Fedora_Core.xml             |    2 +-
 .../zh-TW/opds-Fedora_Draft_Documentation.xml      |    2 +-
 public_html/zh-TW/opds-Fedora_Security_Team.xml    |   33 +
 public_html/zh-TW/opds.xml                         |   20 +-
 public_html/zh-TW/toc.html                         |   22 +
 737 files changed, 15667 insertions(+), 708 deletions(-)
---
diff --git a/fedoradocs.db b/fedoradocs.db
index ffb6e46..c47c2ca 100644
Binary files a/fedoradocs.db and b/fedoradocs.db differ
diff --git a/public_html/Sitemap b/public_html/Sitemap
index 88a4649..46917dc 100644
--- a/public_html/Sitemap
+++ b/public_html/Sitemap
@@ -5089,6 +5089,30 @@
 	<priority>0.8</priority>
 </url>
 <url>
+	<loc>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</loc>
+	<lastmod>2013-03-12</lastmod>
+	<changefreq>monthly</changefreq>
+	<priority>0.8</priority>
+</url>
+<url>
+	<loc>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//html/Defensive_Coding/index.html</loc>
+	<lastmod>2013-03-12</lastmod>
+	<changefreq>monthly</changefreq>
+	<priority>0.8</priority>
+</url>
+<url>
+	<loc>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//html-single/Defensive_Coding/index.html</loc>
+	<lastmod>2013-03-12</lastmod>
+	<changefreq>monthly</changefreq>
+	<priority>0.8</priority>
+</url>
+<url>
+	<loc>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf</loc>
+	<lastmod>2013-03-12</lastmod>
+	<changefreq>monthly</changefreq>
+	<priority>0.8</priority>
+</url>
+<url>
 	<loc>http://docs.fedoraproject.org/es-ES/Fedora/18/epub/Burning_ISO_images_to_disc/Fedora-18-Burning_ISO_images_to_disc-es-ES.epub</loc>
 	<lastmod>2013-01-15</lastmod>
 	<changefreq>monthly</changefreq>
diff --git a/public_html/as-IN/Site_Statistics.html b/public_html/as-IN/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/as-IN/Site_Statistics.html
+++ b/public_html/as-IN/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/as-IN/opds-Community_Services_Infrastructure.xml b/public_html/as-IN/opds-Community_Services_Infrastructure.xml
index c86a9e7..ad17c58 100644
--- a/public_html/as-IN/opds-Community_Services_Infrastructure.xml
+++ b/public_html/as-IN/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/as-IN/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:33</updated>
+  <updated>2013-03-12T03:13:00</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/as-IN/opds-Defensive_Coding.xml b/public_html/as-IN/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..be9237b
--- /dev/null
+++ b/public_html/as-IN/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/as-IN/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/as-IN/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:02</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>as-IN</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/as-IN/opds-Fedora.xml b/public_html/as-IN/opds-Fedora.xml
index d150da6..4de8e01 100644
--- a/public_html/as-IN/opds-Fedora.xml
+++ b/public_html/as-IN/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/as-IN/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:33</updated>
+  <updated>2013-03-12T03:13:00</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/as-IN/opds-Fedora_Contributor_Documentation.xml b/public_html/as-IN/opds-Fedora_Contributor_Documentation.xml
index 999af21..d67555d 100644
--- a/public_html/as-IN/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/as-IN/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/as-IN/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:33</updated>
+  <updated>2013-03-12T03:13:00</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/as-IN/opds-Fedora_Core.xml b/public_html/as-IN/opds-Fedora_Core.xml
index f53761c..c99ece3 100644
--- a/public_html/as-IN/opds-Fedora_Core.xml
+++ b/public_html/as-IN/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/as-IN/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:34</updated>
+  <updated>2013-03-12T03:13:00</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/as-IN/opds-Fedora_Draft_Documentation.xml b/public_html/as-IN/opds-Fedora_Draft_Documentation.xml
index 46dbb12..8446cc3 100644
--- a/public_html/as-IN/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/as-IN/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/as-IN/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:34</updated>
+  <updated>2013-03-12T03:13:00</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/as-IN/opds-Fedora_Security_Team.xml b/public_html/as-IN/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..1d5f34e
--- /dev/null
+++ b/public_html/as-IN/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/as-IN/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/as-IN/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:00</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>as-IN</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/as-IN/opds.xml b/public_html/as-IN/opds.xml
index 8ea016f..cfe3ecc 100644
--- a/public_html/as-IN/opds.xml
+++ b/public_html/as-IN/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/as-IN/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:34</updated>
+  <updated>2013-03-12T03:13:00</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/as-IN/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:33</updated>
+    <updated>2013-03-12T03:13:00</updated>
     <dc:language>as-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/as-IN/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:33</updated>
+    <updated>2013-03-12T03:13:00</updated>
     <dc:language>as-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/as-IN/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:33</updated>
+    <updated>2013-03-12T03:13:00</updated>
     <dc:language>as-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/as-IN/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:34</updated>
+    <updated>2013-03-12T03:13:00</updated>
     <dc:language>as-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/as-IN/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:34</updated>
+    <updated>2013-03-12T03:13:00</updated>
     <dc:language>as-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/as-IN/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:00</updated>
+    <dc:language>as-IN</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/as-IN/toc.html b/public_html/as-IN/toc.html
index 3fb6be0..3ec3d51 100644
--- a/public_html/as-IN/toc.html
+++ b/public_html/as-IN/toc.html
@@ -1589,6 +1589,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/bg-BG/Site_Statistics.html b/public_html/bg-BG/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/bg-BG/Site_Statistics.html
+++ b/public_html/bg-BG/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/bg-BG/opds-Community_Services_Infrastructure.xml b/public_html/bg-BG/opds-Community_Services_Infrastructure.xml
index 7220835..b115489 100644
--- a/public_html/bg-BG/opds-Community_Services_Infrastructure.xml
+++ b/public_html/bg-BG/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/bg-BG/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:34</updated>
+  <updated>2013-03-12T03:13:00</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/bg-BG/opds-Defensive_Coding.xml b/public_html/bg-BG/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..f17a5c3
--- /dev/null
+++ b/public_html/bg-BG/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/bg-BG/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/bg-BG/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:03</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>bg-BG</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/bg-BG/opds-Fedora.xml b/public_html/bg-BG/opds-Fedora.xml
index 1fd4db3..8a8ad68 100644
--- a/public_html/bg-BG/opds-Fedora.xml
+++ b/public_html/bg-BG/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/bg-BG/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:34</updated>
+  <updated>2013-03-12T03:13:00</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/bg-BG/opds-Fedora_Contributor_Documentation.xml b/public_html/bg-BG/opds-Fedora_Contributor_Documentation.xml
index fa600c3..78519b4 100644
--- a/public_html/bg-BG/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/bg-BG/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/bg-BG/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:34</updated>
+  <updated>2013-03-12T03:13:00</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/bg-BG/opds-Fedora_Core.xml b/public_html/bg-BG/opds-Fedora_Core.xml
index 16c4bfe..1806c1a 100644
--- a/public_html/bg-BG/opds-Fedora_Core.xml
+++ b/public_html/bg-BG/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/bg-BG/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:34</updated>
+  <updated>2013-03-12T03:13:00</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/bg-BG/opds-Fedora_Draft_Documentation.xml b/public_html/bg-BG/opds-Fedora_Draft_Documentation.xml
index 84e3bec..aaecdbf 100644
--- a/public_html/bg-BG/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/bg-BG/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/bg-BG/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:34</updated>
+  <updated>2013-03-12T03:13:00</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/bg-BG/opds-Fedora_Security_Team.xml b/public_html/bg-BG/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..79c42c0
--- /dev/null
+++ b/public_html/bg-BG/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/bg-BG/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/bg-BG/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:00</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>bg-BG</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/bg-BG/opds.xml b/public_html/bg-BG/opds.xml
index 8e28db3..6c88cb8 100644
--- a/public_html/bg-BG/opds.xml
+++ b/public_html/bg-BG/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/bg-BG/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:34</updated>
+  <updated>2013-03-12T03:13:00</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/bg-BG/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:34</updated>
+    <updated>2013-03-12T03:13:00</updated>
     <dc:language>bg-BG</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/bg-BG/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:34</updated>
+    <updated>2013-03-12T03:13:00</updated>
     <dc:language>bg-BG</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/bg-BG/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:34</updated>
+    <updated>2013-03-12T03:13:00</updated>
     <dc:language>bg-BG</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/bg-BG/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:34</updated>
+    <updated>2013-03-12T03:13:00</updated>
     <dc:language>bg-BG</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/bg-BG/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:34</updated>
+    <updated>2013-03-12T03:13:00</updated>
     <dc:language>bg-BG</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/bg-BG/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:00</updated>
+    <dc:language>bg-BG</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/bg-BG/toc.html b/public_html/bg-BG/toc.html
index ed4be04..e3a59d9 100644
--- a/public_html/bg-BG/toc.html
+++ b/public_html/bg-BG/toc.html
@@ -1587,6 +1587,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/bn-IN/Site_Statistics.html b/public_html/bn-IN/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/bn-IN/Site_Statistics.html
+++ b/public_html/bn-IN/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/bn-IN/opds-Community_Services_Infrastructure.xml b/public_html/bn-IN/opds-Community_Services_Infrastructure.xml
index 26ec2a2..4da8263 100644
--- a/public_html/bn-IN/opds-Community_Services_Infrastructure.xml
+++ b/public_html/bn-IN/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/bn-IN/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:34</updated>
+  <updated>2013-03-12T03:13:00</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/bn-IN/opds-Defensive_Coding.xml b/public_html/bn-IN/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..c6a6fe3
--- /dev/null
+++ b/public_html/bn-IN/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/bn-IN/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/bn-IN/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:03</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>bn-IN</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/bn-IN/opds-Fedora.xml b/public_html/bn-IN/opds-Fedora.xml
index 10ce845..ac5abd7 100644
--- a/public_html/bn-IN/opds-Fedora.xml
+++ b/public_html/bn-IN/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/bn-IN/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:34</updated>
+  <updated>2013-03-12T03:13:00</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/bn-IN/opds-Fedora_Contributor_Documentation.xml b/public_html/bn-IN/opds-Fedora_Contributor_Documentation.xml
index b6ac910..fe87b5c 100644
--- a/public_html/bn-IN/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/bn-IN/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/bn-IN/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:34</updated>
+  <updated>2013-03-12T03:13:00</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/bn-IN/opds-Fedora_Core.xml b/public_html/bn-IN/opds-Fedora_Core.xml
index edf1716..2405bf6 100644
--- a/public_html/bn-IN/opds-Fedora_Core.xml
+++ b/public_html/bn-IN/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/bn-IN/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:34</updated>
+  <updated>2013-03-12T03:13:00</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/bn-IN/opds-Fedora_Draft_Documentation.xml b/public_html/bn-IN/opds-Fedora_Draft_Documentation.xml
index 6d0b0be..eba257e 100644
--- a/public_html/bn-IN/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/bn-IN/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/bn-IN/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:34</updated>
+  <updated>2013-03-12T03:13:00</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/bn-IN/opds-Fedora_Security_Team.xml b/public_html/bn-IN/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..debd6bf
--- /dev/null
+++ b/public_html/bn-IN/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/bn-IN/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/bn-IN/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:00</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>bn-IN</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/bn-IN/opds.xml b/public_html/bn-IN/opds.xml
index 6d93bf7..0944d0a 100644
--- a/public_html/bn-IN/opds.xml
+++ b/public_html/bn-IN/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/bn-IN/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:34</updated>
+  <updated>2013-03-12T03:13:00</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/bn-IN/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:34</updated>
+    <updated>2013-03-12T03:13:00</updated>
     <dc:language>bn-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/bn-IN/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:34</updated>
+    <updated>2013-03-12T03:13:00</updated>
     <dc:language>bn-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/bn-IN/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:34</updated>
+    <updated>2013-03-12T03:13:00</updated>
     <dc:language>bn-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/bn-IN/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:34</updated>
+    <updated>2013-03-12T03:13:00</updated>
     <dc:language>bn-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/bn-IN/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:34</updated>
+    <updated>2013-03-12T03:13:00</updated>
     <dc:language>bn-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/bn-IN/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:00</updated>
+    <dc:language>bn-IN</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/bn-IN/toc.html b/public_html/bn-IN/toc.html
index 725782d..19e2806 100644
--- a/public_html/bn-IN/toc.html
+++ b/public_html/bn-IN/toc.html
@@ -1589,6 +1589,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/bs-BA/Site_Statistics.html b/public_html/bs-BA/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/bs-BA/Site_Statistics.html
+++ b/public_html/bs-BA/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/bs-BA/opds-Community_Services_Infrastructure.xml b/public_html/bs-BA/opds-Community_Services_Infrastructure.xml
index 6feb130..c428664 100644
--- a/public_html/bs-BA/opds-Community_Services_Infrastructure.xml
+++ b/public_html/bs-BA/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/bs-BA/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:34</updated>
+  <updated>2013-03-12T03:13:00</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/bs-BA/opds-Defensive_Coding.xml b/public_html/bs-BA/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..aa77e8f
--- /dev/null
+++ b/public_html/bs-BA/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/bs-BA/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/bs-BA/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:03</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>bs-BA</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/bs-BA/opds-Fedora.xml b/public_html/bs-BA/opds-Fedora.xml
index f4ebea6..ac73073 100644
--- a/public_html/bs-BA/opds-Fedora.xml
+++ b/public_html/bs-BA/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/bs-BA/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:34</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/bs-BA/opds-Fedora_Contributor_Documentation.xml b/public_html/bs-BA/opds-Fedora_Contributor_Documentation.xml
index 9b39652..ab0b133 100644
--- a/public_html/bs-BA/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/bs-BA/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/bs-BA/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:34</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/bs-BA/opds-Fedora_Core.xml b/public_html/bs-BA/opds-Fedora_Core.xml
index 72e042c..bcea33c 100644
--- a/public_html/bs-BA/opds-Fedora_Core.xml
+++ b/public_html/bs-BA/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/bs-BA/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:34</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/bs-BA/opds-Fedora_Draft_Documentation.xml b/public_html/bs-BA/opds-Fedora_Draft_Documentation.xml
index 4292c75..d74e465 100644
--- a/public_html/bs-BA/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/bs-BA/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/bs-BA/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:34</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/bs-BA/opds-Fedora_Security_Team.xml b/public_html/bs-BA/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..25b52b2
--- /dev/null
+++ b/public_html/bs-BA/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/bs-BA/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/bs-BA/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:01</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>bs-BA</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/bs-BA/opds.xml b/public_html/bs-BA/opds.xml
index f68fb1b..d147cea 100644
--- a/public_html/bs-BA/opds.xml
+++ b/public_html/bs-BA/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/bs-BA/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:35</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/bs-BA/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:34</updated>
+    <updated>2013-03-12T03:13:00</updated>
     <dc:language>bs-BA</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/bs-BA/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:34</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>bs-BA</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/bs-BA/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:34</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>bs-BA</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/bs-BA/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:34</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>bs-BA</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/bs-BA/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:34</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>bs-BA</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/bs-BA/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:01</updated>
+    <dc:language>bs-BA</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/bs-BA/toc.html b/public_html/bs-BA/toc.html
index 212ea66..130976b 100644
--- a/public_html/bs-BA/toc.html
+++ b/public_html/bs-BA/toc.html
@@ -1589,6 +1589,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/ca-ES/Site_Statistics.html b/public_html/ca-ES/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/ca-ES/Site_Statistics.html
+++ b/public_html/ca-ES/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/ca-ES/opds-Community_Services_Infrastructure.xml b/public_html/ca-ES/opds-Community_Services_Infrastructure.xml
index d40b700..d968e7e 100644
--- a/public_html/ca-ES/opds-Community_Services_Infrastructure.xml
+++ b/public_html/ca-ES/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ca-ES/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:35</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ca-ES/opds-Defensive_Coding.xml b/public_html/ca-ES/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..b195975
--- /dev/null
+++ b/public_html/ca-ES/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/ca-ES/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/ca-ES/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:03</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>ca-ES</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/ca-ES/opds-Fedora.xml b/public_html/ca-ES/opds-Fedora.xml
index cca40dc..cfc9848 100644
--- a/public_html/ca-ES/opds-Fedora.xml
+++ b/public_html/ca-ES/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ca-ES/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:35</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ca-ES/opds-Fedora_Contributor_Documentation.xml b/public_html/ca-ES/opds-Fedora_Contributor_Documentation.xml
index 41b33fe..9f6fa11 100644
--- a/public_html/ca-ES/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/ca-ES/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ca-ES/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:35</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ca-ES/opds-Fedora_Core.xml b/public_html/ca-ES/opds-Fedora_Core.xml
index 5219e95..2e30949 100644
--- a/public_html/ca-ES/opds-Fedora_Core.xml
+++ b/public_html/ca-ES/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ca-ES/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:35</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ca-ES/opds-Fedora_Draft_Documentation.xml b/public_html/ca-ES/opds-Fedora_Draft_Documentation.xml
index 76b1f82..2eb33cb 100644
--- a/public_html/ca-ES/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/ca-ES/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ca-ES/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:35</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ca-ES/opds-Fedora_Security_Team.xml b/public_html/ca-ES/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..abf875a
--- /dev/null
+++ b/public_html/ca-ES/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/ca-ES/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/ca-ES/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:01</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>ca-ES</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/ca-ES/opds.xml b/public_html/ca-ES/opds.xml
index 4ef1b47..011c9bb 100644
--- a/public_html/ca-ES/opds.xml
+++ b/public_html/ca-ES/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/ca-ES/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:35</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/ca-ES/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:35</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>ca-ES</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/ca-ES/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:35</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>ca-ES</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/ca-ES/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:35</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>ca-ES</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/ca-ES/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:35</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>ca-ES</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/ca-ES/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:35</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>ca-ES</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/ca-ES/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:01</updated>
+    <dc:language>ca-ES</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/ca-ES/toc.html b/public_html/ca-ES/toc.html
index 5b4fa3b..1005df5 100644
--- a/public_html/ca-ES/toc.html
+++ b/public_html/ca-ES/toc.html
@@ -1589,6 +1589,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/cs-CZ/Site_Statistics.html b/public_html/cs-CZ/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/cs-CZ/Site_Statistics.html
+++ b/public_html/cs-CZ/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/cs-CZ/opds-Community_Services_Infrastructure.xml b/public_html/cs-CZ/opds-Community_Services_Infrastructure.xml
index 549578f..1bbe529 100644
--- a/public_html/cs-CZ/opds-Community_Services_Infrastructure.xml
+++ b/public_html/cs-CZ/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/cs-CZ/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:35</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/cs-CZ/opds-Defensive_Coding.xml b/public_html/cs-CZ/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..2c00ad5
--- /dev/null
+++ b/public_html/cs-CZ/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/cs-CZ/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/cs-CZ/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:03</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>cs-CZ</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/cs-CZ/opds-Fedora.xml b/public_html/cs-CZ/opds-Fedora.xml
index e7233e3..b16ea3e 100644
--- a/public_html/cs-CZ/opds-Fedora.xml
+++ b/public_html/cs-CZ/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/cs-CZ/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:35</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/cs-CZ/opds-Fedora_Contributor_Documentation.xml b/public_html/cs-CZ/opds-Fedora_Contributor_Documentation.xml
index 7f82146..7572bec 100644
--- a/public_html/cs-CZ/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/cs-CZ/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/cs-CZ/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:35</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/cs-CZ/opds-Fedora_Core.xml b/public_html/cs-CZ/opds-Fedora_Core.xml
index 0a5f75f..3c9a9e6 100644
--- a/public_html/cs-CZ/opds-Fedora_Core.xml
+++ b/public_html/cs-CZ/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/cs-CZ/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:35</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/cs-CZ/opds-Fedora_Draft_Documentation.xml b/public_html/cs-CZ/opds-Fedora_Draft_Documentation.xml
index 7590e6e..5f82f4d 100644
--- a/public_html/cs-CZ/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/cs-CZ/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/cs-CZ/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:35</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/cs-CZ/opds-Fedora_Security_Team.xml b/public_html/cs-CZ/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..89a35d8
--- /dev/null
+++ b/public_html/cs-CZ/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/cs-CZ/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/cs-CZ/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:01</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>cs-CZ</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/cs-CZ/opds.xml b/public_html/cs-CZ/opds.xml
index 25bfd85..65303cd 100644
--- a/public_html/cs-CZ/opds.xml
+++ b/public_html/cs-CZ/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/cs-CZ/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:35</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/cs-CZ/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:35</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>cs-CZ</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/cs-CZ/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:35</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>cs-CZ</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/cs-CZ/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:35</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>cs-CZ</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/cs-CZ/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:35</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>cs-CZ</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/cs-CZ/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:35</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>cs-CZ</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/cs-CZ/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:01</updated>
+    <dc:language>cs-CZ</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/cs-CZ/toc.html b/public_html/cs-CZ/toc.html
index 63a62d4..cda4bc6 100644
--- a/public_html/cs-CZ/toc.html
+++ b/public_html/cs-CZ/toc.html
@@ -1589,6 +1589,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/da-DK/Site_Statistics.html b/public_html/da-DK/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/da-DK/Site_Statistics.html
+++ b/public_html/da-DK/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/da-DK/opds-Community_Services_Infrastructure.xml b/public_html/da-DK/opds-Community_Services_Infrastructure.xml
index fec3f4a..99145c5 100644
--- a/public_html/da-DK/opds-Community_Services_Infrastructure.xml
+++ b/public_html/da-DK/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/da-DK/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:35</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/da-DK/opds-Defensive_Coding.xml b/public_html/da-DK/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..b7ac0a3
--- /dev/null
+++ b/public_html/da-DK/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/da-DK/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/da-DK/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:03</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>da-DK</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/da-DK/opds-Fedora.xml b/public_html/da-DK/opds-Fedora.xml
index 12164a6..94e8a32 100644
--- a/public_html/da-DK/opds-Fedora.xml
+++ b/public_html/da-DK/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/da-DK/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:35</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/da-DK/opds-Fedora_Contributor_Documentation.xml b/public_html/da-DK/opds-Fedora_Contributor_Documentation.xml
index 2ca1556..b1a891a 100644
--- a/public_html/da-DK/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/da-DK/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/da-DK/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:35</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/da-DK/opds-Fedora_Core.xml b/public_html/da-DK/opds-Fedora_Core.xml
index 93615dd..7a8ffdb 100644
--- a/public_html/da-DK/opds-Fedora_Core.xml
+++ b/public_html/da-DK/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/da-DK/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:35</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/da-DK/opds-Fedora_Draft_Documentation.xml b/public_html/da-DK/opds-Fedora_Draft_Documentation.xml
index 852d4a4..217c4e2 100644
--- a/public_html/da-DK/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/da-DK/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/da-DK/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:35</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/da-DK/opds-Fedora_Security_Team.xml b/public_html/da-DK/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..84b11cb
--- /dev/null
+++ b/public_html/da-DK/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/da-DK/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/da-DK/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:01</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>da-DK</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/da-DK/opds.xml b/public_html/da-DK/opds.xml
index 7ae2dc8..a9bbb10 100644
--- a/public_html/da-DK/opds.xml
+++ b/public_html/da-DK/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/da-DK/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:36</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/da-DK/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:35</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>da-DK</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/da-DK/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:35</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>da-DK</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/da-DK/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:35</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>da-DK</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/da-DK/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:35</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>da-DK</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/da-DK/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:35</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>da-DK</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/da-DK/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:01</updated>
+    <dc:language>da-DK</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/da-DK/toc.html b/public_html/da-DK/toc.html
index b96c69e..597af49 100644
--- a/public_html/da-DK/toc.html
+++ b/public_html/da-DK/toc.html
@@ -1589,6 +1589,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/de-DE/Site_Statistics.html b/public_html/de-DE/Site_Statistics.html
index 9c7b2ef..30a7777 100644
--- a/public_html/de-DE/Site_Statistics.html
+++ b/public_html/de-DE/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Sprachen gesamt: </b>45<br />
-	<b>Pakete gesamt: </b>843
+	<b>Pakete gesamt: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/de-DE/opds-Community_Services_Infrastructure.xml b/public_html/de-DE/opds-Community_Services_Infrastructure.xml
index dd64533..fd6d3bb 100644
--- a/public_html/de-DE/opds-Community_Services_Infrastructure.xml
+++ b/public_html/de-DE/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/de-DE/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:36</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/de-DE/opds-Defensive_Coding.xml b/public_html/de-DE/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..5d4a550
--- /dev/null
+++ b/public_html/de-DE/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/de-DE/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/de-DE/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:04</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>de-DE</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/de-DE/opds-Fedora.xml b/public_html/de-DE/opds-Fedora.xml
index e008344..f8a9eb4 100644
--- a/public_html/de-DE/opds-Fedora.xml
+++ b/public_html/de-DE/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/de-DE/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:36</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/de-DE/opds-Fedora_Contributor_Documentation.xml b/public_html/de-DE/opds-Fedora_Contributor_Documentation.xml
index a324985..d15df22 100644
--- a/public_html/de-DE/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/de-DE/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/de-DE/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:36</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/de-DE/opds-Fedora_Core.xml b/public_html/de-DE/opds-Fedora_Core.xml
index ae4a3a2..dd33554 100644
--- a/public_html/de-DE/opds-Fedora_Core.xml
+++ b/public_html/de-DE/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/de-DE/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:36</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/de-DE/opds-Fedora_Draft_Documentation.xml b/public_html/de-DE/opds-Fedora_Draft_Documentation.xml
index 4177ebf..c06f4c8 100644
--- a/public_html/de-DE/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/de-DE/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/de-DE/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:36</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/de-DE/opds-Fedora_Security_Team.xml b/public_html/de-DE/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..2231ffe
--- /dev/null
+++ b/public_html/de-DE/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/de-DE/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/de-DE/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:01</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>de-DE</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/de-DE/opds.xml b/public_html/de-DE/opds.xml
index f0ebef0..76231d8 100644
--- a/public_html/de-DE/opds.xml
+++ b/public_html/de-DE/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/de-DE/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:36</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/de-DE/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:36</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>de-DE</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/de-DE/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:36</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>de-DE</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/de-DE/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:36</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>de-DE</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/de-DE/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:36</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>de-DE</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/de-DE/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:36</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>de-DE</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/de-DE/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:01</updated>
+    <dc:language>de-DE</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/de-DE/toc.html b/public_html/de-DE/toc.html
index 4b253cf..05e699f 100644
--- a/public_html/de-DE/toc.html
+++ b/public_html/de-DE/toc.html
@@ -1643,6 +1643,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Nicht übersetzt</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/el-GR/Site_Statistics.html b/public_html/el-GR/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/el-GR/Site_Statistics.html
+++ b/public_html/el-GR/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/el-GR/opds-Community_Services_Infrastructure.xml b/public_html/el-GR/opds-Community_Services_Infrastructure.xml
index 1f42c0c..be626c7 100644
--- a/public_html/el-GR/opds-Community_Services_Infrastructure.xml
+++ b/public_html/el-GR/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/el-GR/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:36</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/el-GR/opds-Defensive_Coding.xml b/public_html/el-GR/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..96eda0c
--- /dev/null
+++ b/public_html/el-GR/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/el-GR/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/el-GR/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:04</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>el-GR</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/el-GR/opds-Fedora.xml b/public_html/el-GR/opds-Fedora.xml
index c88342f..280ab79 100644
--- a/public_html/el-GR/opds-Fedora.xml
+++ b/public_html/el-GR/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/el-GR/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:36</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/el-GR/opds-Fedora_Contributor_Documentation.xml b/public_html/el-GR/opds-Fedora_Contributor_Documentation.xml
index 4a9935b..056eef7 100644
--- a/public_html/el-GR/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/el-GR/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/el-GR/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:36</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/el-GR/opds-Fedora_Core.xml b/public_html/el-GR/opds-Fedora_Core.xml
index 5ffd7aa..6c1a399 100644
--- a/public_html/el-GR/opds-Fedora_Core.xml
+++ b/public_html/el-GR/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/el-GR/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:36</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/el-GR/opds-Fedora_Draft_Documentation.xml b/public_html/el-GR/opds-Fedora_Draft_Documentation.xml
index f81a108..9343bcb 100644
--- a/public_html/el-GR/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/el-GR/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/el-GR/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:36</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/el-GR/opds-Fedora_Security_Team.xml b/public_html/el-GR/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..c3247f2
--- /dev/null
+++ b/public_html/el-GR/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/el-GR/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/el-GR/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:01</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>el-GR</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/el-GR/opds.xml b/public_html/el-GR/opds.xml
index 481e0a9..86ee604 100644
--- a/public_html/el-GR/opds.xml
+++ b/public_html/el-GR/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/el-GR/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:36</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/el-GR/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:36</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>el-GR</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/el-GR/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:36</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>el-GR</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/el-GR/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:36</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>el-GR</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/el-GR/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:36</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>el-GR</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/el-GR/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:36</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>el-GR</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/el-GR/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:01</updated>
+    <dc:language>el-GR</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/el-GR/toc.html b/public_html/el-GR/toc.html
index c01867b..d7764cb 100644
--- a/public_html/el-GR/toc.html
+++ b/public_html/el-GR/toc.html
@@ -1589,6 +1589,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/en-US/Fedora_Security_Team/epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub b/public_html/en-US/Fedora_Security_Team/epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub
new file mode 100644
index 0000000..ca7bb24
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/css/common.css b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/css/common.css
new file mode 100644
index 0000000..d7dc3f2
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/css/common.css
@@ -0,0 +1,1528 @@
+* {
+	widows: 2 !important;
+	orphans: 2 !important;
+}
+
+body, h1, h2, h3, h4, h5, h6, pre, li, div {
+	line-height: 1.29em;
+}
+
+body {
+	background-color: white;
+	margin:0 auto;
+	font-family: "liberation sans", "Myriad ", "Bitstream Vera Sans", "Lucida Grande", "Luxi Sans", "Trebuchet MS", helvetica, verdana, arial, sans-serif;
+	font-size:12px;
+	max-width:55em;
+	color:black;
+}
+
+body.toc_embeded {
+	/*for web hosting system only*/
+	margin-left: 300px;
+}
+
+object.toc, iframe.toc {
+	/*for web hosting system only*/
+	border-style:none;
+	position:fixed;
+	width:290px;
+	height:99.99%;
+	top:0;
+	left:0;
+	z-index: 100;
+	border-style:none;
+	border-right:1px solid #999;
+}
+
+/* Hide web menu */
+
+body.notoc {
+	margin-left: 3em;
+}
+
+iframe.notoc {
+	border-style:none;
+	border: none;
+	padding: 0em;
+	position:fixed;
+	width: 21px;
+	height: 29px;
+	top: 0px;
+	left:0;
+	overflow: hidden;
+	margin: 0em;
+	margin-left: -3px;
+}
+/* End hide web menu */
+
+/* desktop styles */
+body.desktop {
+	margin-left: 26em;
+}
+
+body.desktop .book > .toc {
+	display:block;
+	width:24em;
+	height:99%;
+	position:fixed;
+	overflow:auto;
+	top:0px;
+	left:0px;
+	padding-left:1em;
+	background-color:#EEEEEE;
+}
+
+.toc {
+	line-height:1.35em;
+}
+
+.toc .glossary,
+.toc .chapter, .toc .appendix {
+	margin-top:1em;
+}
+
+.toc .part {
+	margin-top:1em;
+	display:block;
+}
+
+span.glossary,
+span.appendix {
+	display:block;
+	margin-top:0.5em;
+}
+
+div {
+	padding-top:0px;
+}
+
+div.section {
+	padding-top:1em;
+}
+
+p, div.para, div.formalpara {
+	padding-top:0px;
+	margin-top:0.3em;
+	padding-bottom:0px;
+	margin-bottom:1em;
+}
+
+/*Links*/
+a {
+	outline: none;
+}
+
+a:link {
+	text-decoration:none;
+	border-bottom: 1px dotted ;
+	color:#3366cc;
+}
+
+a:visited {
+	text-decoration:none;
+	border-bottom: 1px dotted ;
+	color:#003366;
+}
+
+div.longdesc-link {
+	float:right;
+	color:#999;
+}
+
+.toc a, .qandaset a {
+	font-weight:normal;
+	border:none;
+}
+
+.toc a:hover, .qandaset a:hover
+{
+	border-bottom: 1px dotted;
+}
+
+/*headings*/
+h1, h2, h3, h4, h5, h6 {
+	color: #336699;
+	margin-top: 0em;
+	margin-bottom: 0em;
+	background-color: transparent;
+	page-break-inside: avoid;
+	page-break-after: avoid;
+}
+
+h1 {
+	font-size:2.0em;
+}
+
+.titlepage h1.title {
+	font-size: 3.0em;
+	padding-top: 1em;
+	text-align:left;
+}
+
+.book > .titlepage h1.title {
+	text-align:center;
+}
+
+.article > .titlepage h1.title {
+	text-align:center;
+}
+
+.set .titlepage > div > div > h1.title {
+	text-align:center;
+}
+
+.producttitle {
+	margin-top: 0em;
+	margin-bottom: 0em;
+	font-size: 3.0em;
+	font-weight: bold;
+	background: #003d6e url(../images/h1-bg.png) top left repeat-x;
+	color: white;
+	text-align: center;
+	padding: 0.7em;
+}
+
+.titlepage .corpauthor {
+	margin-top: 1em;
+	text-align: center;
+}
+
+.section h1.title {
+	font-size: 1.6em;
+	padding: 0em;
+	color: #336699;
+	text-align: left;
+	background: white;
+}
+
+h2 {
+	font-size:1.6em;
+}
+
+
+h2.subtitle, h3.subtitle {
+	margin-top: 1em;
+	margin-bottom: 1em;
+	font-size: 1.4em;
+	text-align: center;
+}
+
+.preface > div > div > div > h2.title {
+	margin-top: 1em;
+	font-size: 2.0em;
+}
+
+.appendix h2 {
+	margin-top: 1em;
+	font-size: 2.0em;
+}
+
+
+
+h3 {
+	font-size:1.3em;
+	padding-top:0em;
+	padding-bottom:0em;
+}
+h4 {
+	font-size:1.1em;
+	padding-top:0em;
+	padding-bottom:0em;
+}
+
+h5 {
+	font-size:1em;
+}
+
+h6 {
+	font-size:1em;
+}
+
+h5.formalpara {
+	font-size:1em;
+	margin-top:2em;
+	margin-bottom:.8em;
+}
+
+.abstract h6 {
+	margin-top:1em;
+	margin-bottom:.5em;
+	font-size:2em;
+}
+
+/*element rules*/
+hr {
+	border-collapse: collapse;
+	border-style:none;
+	border-top: 1px dotted #ccc;
+	width:100%;
+	margin-top: 3em;
+}
+
+/* web site rules */
+ul.languages, .languages li {
+	display:inline;
+	padding:0em;
+}
+
+.languages li a {
+	padding:0em .5em;
+	text-decoration: none;
+}
+
+.languages li p, .languages li div.para {
+	display:inline;
+}
+
+.languages li a:link, .languages li a:visited {
+	color:#444;
+}
+
+.languages li a:hover, .languages li a:focus, .languages li a:active {
+	color:black;
+}
+
+ul.languages {
+	display:block;
+	background-color:#eee;
+	padding:.5em;
+}
+
+/*supporting stylesheets*/
+
+/*unique to the webpage only*/
+.books {
+	position:relative;
+}
+
+.versions li {
+	width:100%;
+	clear:both;
+	display:block;
+}
+
+a.version {
+	font-size:2em;
+	text-decoration:none;
+	width:100%;
+	display:block;
+	padding:1em 0em .2em 0em;
+	clear:both;
+}
+
+a.version:before {
+	content:"Version";
+	font-size:smaller;
+}
+
+a.version:visited, a.version:link {
+	color:#666;
+}
+
+a.version:focus, a.version:hover {
+	color:black;
+}
+
+.books {
+	display:block;
+	position:relative;
+	clear:both;
+	width:100%;
+}
+
+.books li {
+	display:block;
+	width:200px;
+	float:left;
+	position:relative;
+	clear: none ;
+}
+
+.books .html {
+	width:170px;
+	display:block;
+}
+
+.books .pdf {
+	position:absolute;
+	left:170px;
+	top:0px;
+	font-size:smaller;
+}
+
+.books .pdf:link, .books .pdf:visited {
+	color:#555;
+}
+
+.books .pdf:hover, .books .pdf:focus {
+	color:#000;
+}
+
+.books li a {
+	text-decoration:none;
+}
+
+.books li a:hover {
+	color:black;
+}
+
+/*products*/
+.products li {
+	display: block;
+	width:300px;
+	float:left;
+}
+
+.products li a {
+	width:300px;
+	padding:.5em 0em;
+}
+
+.products ul {
+	clear:both;
+}
+
+/*revision history*/
+.revhistory {
+	display:block;
+}
+
+.revhistory table {
+	background-color:transparent;
+	border-color:#fff;
+	padding:0em;
+	margin: 0;
+	border-collapse:collapse;
+	border-style:none;
+}
+
+.revhistory td {
+	text-align :left;
+	padding:0em;
+	border: none;
+	border-top: 1px solid #fff;
+	font-weight: bold;
+}
+
+.revhistory .simplelist td {
+	font-weight: normal;
+}
+
+.revhistory .simplelist {
+	margin-bottom: 1.5em;
+	margin-left: 1em;
+}
+
+.revhistory table th {
+	display: none;
+}
+
+
+/*credits*/
+.authorgroup div {
+	clear:both;
+	text-align: center;
+}
+
+h3.author {
+	margin: 0em;
+	padding: 0em;
+	padding-top: 1em;
+}
+
+.authorgroup h4 {
+	padding: 0em;
+	margin: 0em;
+	padding-top: 1em;
+	margin-top: 1em;
+}
+
+.author, 
+.editor, 
+.translator, 
+.othercredit,
+.contrib {
+	display: block;
+}
+
+.revhistory .author {
+	display: inline;
+}
+
+.othercredit h3 {
+	padding-top: 1em;
+}
+
+
+.othercredit {
+	margin:0em;
+	padding:0em;
+}
+
+.releaseinfo {
+	clear: both;
+}
+
+.copyright {
+	margin-top: 1em;
+}
+
+/* qanda sets */
+.answer {
+	margin-bottom:1em;
+	border-bottom:1px dotted #ccc;
+}
+
+.qandaset .toc {
+	border-bottom:1px dotted #ccc;
+}
+
+.question {
+	font-weight:bold;
+}
+
+.answer .data, .question .data {
+	padding-left: 2.6em;
+}
+
+.answer label, .question label {
+	float:left;
+	font-weight:bold;
+}
+
+/* inline syntax highlighting */
+.perl_Alert {
+	color: #0000ff;
+}
+
+.perl_BaseN {
+	color: #007f00;
+}
+
+.perl_BString {
+	color: #5C3566;
+}
+
+.perl_Char {
+	color: #ff00ff;
+}
+
+.perl_Comment {
+	color: #FF00FF;
+}
+
+
+.perl_DataType {
+	color: #0000ff;
+}
+
+
+.perl_DecVal {
+	color: #00007f;
+}
+
+
+.perl_Error {
+	color: #ff0000;
+}
+
+
+.perl_Float {
+	color: #00007f;
+}
+
+
+.perl_Function {
+	color: #007f00;
+}
+
+
+.perl_IString {
+	color: #5C3566;
+}
+
+
+.perl_Keyword {
+	color: #002F5D;
+}
+
+
+.perl_Operator {
+	color: #ffa500;
+}
+
+
+.perl_Others {
+	color: #b03060;
+}
+
+
+.perl_RegionMarker {
+	color: #96b9ff;
+}
+
+
+.perl_Reserved {
+	color: #9b30ff;
+}
+
+
+.perl_String {
+	color: #5C3566;
+}
+
+
+.perl_Variable {
+	color: #0000ff;
+}
+
+
+.perl_Warning {
+	color: #0000ff;
+}
+
+/*Lists*/
+ul {
+	padding-left:1.6em;
+	list-style-image:url(../images/dot.png);
+	list-style-type: circle;
+}
+
+ul ul {
+	list-style-image:url(../images/dot2.png);
+	list-style-type: circle;
+}
+
+ol {
+	list-style-image:none;
+	list-style-type: decimal;
+}
+
+ol ol {
+	list-style-type: lower-alpha;
+}
+
+ol.arabic {
+	list-style-type: decimal;
+}
+
+ol.loweralpha {
+	list-style-type: lower-alpha;
+}
+
+ol.lowerroman {
+	list-style-type: lower-roman;
+}
+
+ol.upperalpha {
+	list-style-type: upper-alpha;
+}
+
+ol.upperroman {
+	list-style-type: upper-roman;
+}
+
+dt {
+	font-weight:bold;
+	margin-bottom:0em;
+	padding-bottom:0em;
+}
+
+dd {
+	margin:0em;
+	margin-left:2em;
+	padding-top:0em;
+	padding-bottom: 1em;
+}
+
+li {
+	padding-top:0px;
+	margin-top:0em;
+	padding-bottom:0px;
+	margin-bottom:0.4em;
+}
+
+li p, li div.para {
+	padding-top:0px;
+	margin-top:0em;
+	padding-bottom:0px;
+	margin-bottom:0.3em;
+}
+
+/*images*/
+img {
+	display:block;
+	margin: 2em 0;
+}
+
+.inlinemediaobject, .inlinemediaobject img {
+	display:inline;
+	margin:0em;
+}
+
+.figure img {
+	display:block;
+	margin:0;
+	page-break-inside: avoid;
+}
+
+.figure .title {
+	margin:0em;
+	margin-bottom:2em;
+	padding:0px;
+}
+
+/*document modes*/
+.confidential {
+	background-color:#900;
+	color:White;
+	padding:.5em .5em;
+	text-transform:uppercase;
+	text-align:center;
+}
+
+.longdesc-link {
+	display:none;
+}
+
+.longdesc {
+	display:none;
+}
+
+.prompt {
+	padding:0em .3em;
+}
+
+/*user interface styles*/
+.screen .replaceable {
+}
+
+.guibutton, .guilabel {
+	font-family: "liberation mono", "bitstream vera mono", "dejavu mono", monospace;
+	font-weight: bold;
+	white-space: nowrap;
+}
+
+.example {
+	background-color: #ffffff;
+	border-left: 3px solid #aaaaaa;
+	padding-top: 1em;
+	padding-bottom: 0.1em;
+}
+
+.example h6 {
+	padding-left: 10px;
+}
+
+.example-contents {
+	padding-left: 10px;
+	background-color: #ffffff;
+}
+
+.example-contents .para {
+/*	 padding: 10px;*/
+}
+
+/*terminal/console text*/
+.computeroutput, 
+.option {
+	font-family:"liberation mono", "bitstream vera mono", "dejavu mono", monospace;
+	font-weight:bold;
+}
+
+.replaceable {
+	font-family:"liberation mono", "bitstream vera mono", "dejavu mono", monospace;
+	font-style: italic;
+}
+
+.command, .filename, .keycap, .classname, .literal {
+	font-family:"liberation mono", "bitstream vera mono", "dejavu mono", monospace;
+	font-weight:bold;
+}
+
+/* no bold in toc */
+.toc * {
+	font-weight: inherit;
+}
+
+pre {
+	font-family:"liberation mono", "bitstream vera mono", "dejavu mono", monospace;
+	display:block;
+	background-color: #f5f5f5;
+	color: #000000;
+	border: 1px solid #aaaaaa;
+	margin-bottom: 0.3em;
+	padding:.5em 1em;
+	white-space: pre-wrap; /* css-3 */
+	white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */
+	white-space: -pre-wrap; /* Opera 4-6 */
+	white-space: -o-pre-wrap; /* Opera 7 */
+	word-wrap: break-word; /* Internet Explorer 5.5+ */
+	font-size: 0.9em;
+}
+
+pre .replaceable, 
+pre .keycap {
+}
+
+code {
+	font-family:"liberation mono", "bitstream vera mono", "dejavu mono", monospace;
+/*	white-space: nowrap;*/
+	white-space: pre-wrap;
+	word-wrap: break-word;
+	font-weight:bold;
+}
+
+.parameter code {
+	display: inline;
+	white-space: pre-wrap; /* css-3 */
+	white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */
+	white-space: -pre-wrap; /* Opera 4-6 */
+	white-space: -o-pre-wrap; /* Opera 7 */
+	word-wrap: break-word; /* Internet Explorer 5.5+ */
+}
+
+/*Notifications*/
+div.warning:before {
+	content:url(../images/warning.png);
+	padding-left: 5px;
+}
+
+div.note:before {
+	content:url(../images/note.png);
+	padding-left: 5px;
+}
+
+div.important:before {
+	content:url(../images/important.png);
+	padding-left: 5px;
+}
+
+div.warning, div.note, div.important {
+	color: black;
+	margin: 0em;
+	padding: 0em;
+	background: none;
+	background-color: white;
+	margin-bottom: 1em;
+	border-bottom: 1px solid #aaaaaa;
+	page-break-inside: avoid;
+}
+
+div.warning h2, div.note h2,div.important h2 {
+	margin: 0em;
+	padding: 0em;
+	color: #eeeeec;
+	padding-top: 0px;
+	padding-bottom: 0px;
+	height: 1.4em;
+	line-height: 1.4em;
+	font-size: 1.4em;
+	display:inline;
+}
+
+div.admonition_header {
+	clear: both;
+	margin: 0em;
+	padding: 0em;
+	margin-top: -3.3em;
+	padding-left: 58px;
+	line-height: 1.0em;
+	font-size: 1.0em;
+}
+
+div.warning div.admonition_header {
+	background: url(../images/red.png) top left repeat-x;
+	background-color: #590000;
+}
+
+div.note div.admonition_header {
+	background: url(../images/green.png) top right repeat-x;
+	background-color: #597800;
+}
+
+div.important div.admonition_header {
+	background: url(../images/yellow.png) top right repeat-x;
+	background-color: #a6710f;
+}
+
+div.warning p, div.warning div.para,
+div.note p, div.note div.para,
+div.important p, div.important div.para {
+	padding: 0em;
+	margin: 0em;
+}
+
+div.admonition {
+	border: none;
+	border-left: 1px solid #aaaaaa;
+	border-right: 1px solid #aaaaaa;
+	padding:0em;
+	margin:0em;
+	padding-top: 1.5em;
+	padding-bottom: 1em;
+	padding-left: 2em;
+	padding-right: 1em;
+	background-color: #eeeeec;
+	-moz-border-radius: 0px;
+	-webkit-border-radius: 0px;
+	border-radius: 0px;
+}
+
+/*Page Title*/
+#title  {
+	display:block;
+	height:45px;
+	padding-bottom:1em;
+	margin:0em;
+}
+
+#title a.left{
+	display:inline;
+	border:none;
+}
+
+#title a.left img{
+	border:none;
+	float:left;
+	margin:0em;
+	margin-top:.7em;
+}
+
+#title a.right {
+	padding-bottom:1em;
+}
+
+#title a.right img {
+	border:none;
+	float:right;
+	margin:0em;
+	margin-top:.7em;
+}
+
+/*Table*/
+div.table {
+	page-break-inside: avoid;
+}
+
+table {
+	border:1px solid #6c614b;
+	width:100%;
+	border-collapse:collapse;
+}
+
+table.simplelist, .calloutlist table {
+	border-style: none;
+}
+
+table th {
+	text-align:left;
+	background-color:#6699cc;
+	padding:.3em .5em;
+	color:white;
+}
+
+table td {
+	padding:.15em .5em;
+}
+
+table tr.even td {
+	background-color:#f5f5f5;
+}
+
+table th p:first-child, table td p:first-child, table  li p:first-child,
+table th div.para:first-child, table td div.para:first-child, table  li div.para:first-child {
+	margin-top:0em;
+	padding-top:0em;
+	display:inline;
+}
+
+th, td {
+	border-style:none;
+	vertical-align: top;
+	border: 1px solid #000;
+}
+
+.simplelist th, .simplelist td {
+	border: none;
+}
+
+table table td {
+	border-bottom:1px dotted #aaa;
+	background-color:white;
+	padding:.6em 0em;
+}
+
+table table {
+	border:1px solid white;
+}
+
+td.remarkval {
+	color:#444;
+}
+
+td.fieldval {
+	font-weight:bold;
+}
+
+.lbname, .lbtype, .lbdescr, .lbdriver, .lbhost {
+	color:white;
+	font-weight:bold;
+	background-color:#999;
+	width:120px;
+}
+
+td.remarkval {
+	width:230px;
+}
+
+td.tname {
+	font-weight:bold;
+}
+
+th.dbfield {
+	width:120px;
+}
+
+th.dbtype {
+	width:70px;
+}
+
+th.dbdefault {
+	width:70px;
+}
+
+th.dbnul {
+	width:70px;
+}
+
+th.dbkey {
+	width:70px;
+}
+
+span.book {
+	margin-top:4em;
+	display:block;
+	font-size:11pt;
+}
+
+span.book a{
+	font-weight:bold;
+}
+span.chapter {
+	display:block;
+	margin-top:0.5em;
+}
+
+table.simplelist td, .calloutlist table td {
+	border-style: none;
+}
+
+/*Breadcrumbs*/
+#breadcrumbs ul li.first:before {
+	content:" ";
+}
+
+#breadcrumbs {
+	color:#900;
+	padding:3px;
+	margin-bottom:25px;
+}
+
+#breadcrumbs ul {
+	margin-left:0;
+	padding-left:0;
+	display:inline;
+	border:none;
+}
+
+#breadcrumbs ul li {
+	margin-left:0;
+	padding-left:2px;
+	border:none;
+	list-style:none;
+	display:inline;
+}
+
+#breadcrumbs ul li:before {
+	content:"\0020 \0020 \0020 \00BB \0020";
+	color:#333;
+}
+
+/*index*/
+.glossary h3, 
+.index h3 {
+	font-size: 2em;
+	color:#aaa;
+	margin:0em;
+}
+
+.indexdiv {
+	margin-bottom:1em;
+}
+
+.glossary dt,
+.index dt {
+	color:#444;
+	padding-top:.5em;
+}
+
+.glossary dl dl dt, 
+.index dl dl dt {
+	color:#777;
+	font-weight:normal;
+	padding-top:0em;
+}
+
+.index dl dl dt:before {
+	content:"- ";
+	color:#ccc;
+}
+
+/*changes*/
+.footnote {
+	font-size: .7em;
+	margin:0em;
+	color:#222;
+}
+
+table .footnote {
+}
+
+sup {
+	color:#999;
+	margin:0em;
+	padding:0em;
+	line-height: .4em;
+	font-size: 1em;
+	padding-left:0em;
+}
+
+.footnote {
+	position:relative;
+}
+
+.footnote sup  {
+	color:#e3dcc0;
+	position:absolute;
+	left: .4em;
+}
+
+.footnote sup a:link, 
+.footnote sup a:visited {
+	color:#92917d;
+	text-decoration:none;
+}
+
+.footnote:hover sup a {
+	text-decoration:none;
+}
+
+.footnote p,.footnote div.para {
+	padding-left:2em;
+}
+
+.footnote a:link, 
+.footnote a:visited {
+	color:#00537c;
+}
+
+.footnote a:hover {
+}
+
+/**/
+div.chapter {
+	margin-top:3em;
+	page-break-inside: avoid;
+}
+
+div.preface {
+	page-break-inside: avoid;
+}
+
+div.section {
+	margin-top:1em;
+	page-break-inside: auto;
+}
+
+div.note .replaceable, 
+div.important .replaceable, 
+div.warning .replaceable, 
+div.note .keycap, 
+div.important .keycap, 
+div.warning .keycap
+{
+}
+
+ul li p:last-child, ul li div.para:last-child {
+	margin-bottom:0em;
+	padding-bottom:0em;
+}
+
+/*document navigation*/
+.docnav a, .docnav strong {
+	border:none;
+	text-decoration:none;
+	font-weight:normal;
+}
+
+.docnav {
+	list-style:none;
+	margin:0em;
+	padding:0em;
+	position:relative;
+	width:100%;
+	padding-bottom:2em;
+	padding-top:1em;
+	border-top:1px dotted #ccc;
+}
+
+.docnav li {
+	list-style:none;
+	margin:0em;
+	padding:0em;
+	display:inline;
+	font-size:.8em;
+}
+
+.docnav li:before {
+	content:" ";
+}
+
+.docnav li.previous, .docnav li.next {
+	position:absolute;
+	top:1em;
+}
+
+.docnav li.up, .docnav li.home {
+	margin:0em 1.5em;
+}
+
+.docnav li.previous {
+	left:0px;
+	text-align:left;
+}
+
+.docnav li.next {
+	right:0px;
+	text-align:right;
+}
+
+.docnav li.previous strong, .docnav li.next strong {
+	height:22px;
+	display:block;
+}
+
+.docnav {
+	margin:0 auto;
+	text-align:center;
+}
+
+.docnav li.next a strong {
+	background:  url(../images/stock-go-forward.png) top right no-repeat;
+	padding-top:3px;
+	padding-bottom:4px;
+	padding-right:28px;
+	font-size:1.2em;
+}
+
+.docnav li.previous a strong {
+	background: url(../images/stock-go-back.png) top left no-repeat;
+	padding-top:3px;
+	padding-bottom:4px;
+	padding-left:28px;
+	padding-right:0.5em;
+	font-size:1.2em;
+}
+
+.docnav li.home a strong {
+	background: url(../images/stock-home.png) top left no-repeat;
+	padding:5px;
+	padding-left:28px;
+	font-size:1.2em;
+}
+
+.docnav li.up a strong {
+	background: url(../images/stock-go-up.png) top left no-repeat;
+	padding:5px;
+	padding-left:28px;
+	font-size:1.2em;
+}
+
+.docnav a:link, .docnav a:visited {
+	color:#666;
+}
+
+.docnav a:hover, .docnav a:focus, .docnav a:active {
+	color:black;
+}
+
+.docnav a {
+	max-width: 10em;
+	overflow:hidden;
+}
+
+.docnav a:link strong {
+	text-decoration:none;
+}
+
+.docnav {
+	margin:0 auto;
+	text-align:center;
+}
+
+ul.docnav {
+	margin-bottom: 1em;
+}
+/* Reports */
+.reports ul {
+	list-style:none;
+	margin:0em;
+	padding:0em;
+}
+
+.reports li{
+	margin:0em;
+	padding:0em;
+}
+
+.reports li.odd {
+	background-color: #eeeeee;
+	margin:0em;
+	padding:0em;
+}
+
+.reports dl {
+	display:inline;
+	margin:0em;
+	padding:0em;
+	float:right;
+	margin-right: 17em;
+	margin-top:-1.3em;
+}
+
+.reports dt {
+	display:inline;
+	margin:0em;
+	padding:0em;
+}
+
+.reports dd {
+	display:inline;
+	margin:0em;
+	padding:0em;
+	padding-right:.5em;
+}
+
+.reports h2, .reports h3{
+	display:inline;
+	padding-right:.5em;
+	font-size:10pt;
+	font-weight:normal;
+}
+
+.reports div.progress {
+	display:inline;
+	float:right;
+	width:16em;
+	background:#c00 url(../images/shine.png) top left repeat-x;
+	margin:0em;
+	margin-top:-1.3em;
+	padding:0em;
+	border:none;
+}
+
+/*uniform*/
+body.results, body.reports {
+	max-width:57em ;
+	padding:0em;
+}
+
+/*Progress Bar*/
+div.progress {
+	display:block;
+	float:left;
+	width:16em;
+	background:#c00 url(../images/shine.png) top left repeat-x;
+	height:1em;
+}
+
+div.progress span {
+	height:1em;
+	float:left;
+}
+
+div.progress span.translated {
+	background:#6c3 url(../images/shine.png) top left repeat-x;
+}
+
+div.progress span.fuzzy {
+	background:#ff9f00 url(../images/shine.png) top left repeat-x;
+}
+
+
+/*Results*/
+
+.results ul {
+	list-style:none;
+	margin:0em;
+	padding:0em;
+}
+
+.results li{
+	margin:0em;
+	padding:0em;
+}
+
+.results li.odd {
+	background-color: #eeeeee;
+	margin:0em;
+	padding:0em;
+}
+
+.results dl {
+	display:inline;
+	margin:0em;
+	padding:0em;
+	float:right;
+	margin-right: 17em;
+	margin-top:-1.3em;
+}
+
+.results dt {
+	display:inline;
+	margin:0em;
+	padding:0em;
+}
+
+.results dd {
+	display:inline;
+	margin:0em;
+	padding:0em;
+	padding-right:.5em;
+}
+
+.results h2, .results h3 {
+	display:inline;
+	padding-right:.5em;
+	font-size:10pt;
+	font-weight:normal;
+}
+
+.results div.progress {
+	display:inline;
+	float:right;
+	width:16em;
+	background:#c00 url(../images/shine.png) top left repeat-x;
+	margin:0em;
+	margin-top:-1.3em;
+	padding:0em;
+	border:none;
+}
+
+/* Dirty EVIL Mozilla hack for round corners */
+pre {
+	-moz-border-radius:11px;
+	-webkit-border-radius:11px;
+	border-radius: 11px;
+	page-break-inside: avoid;
+}
+
+.example {
+	-moz-border-radius:0px;
+	-webkit-border-radius:0px;
+	border-radius: 0px;
+	page-break-inside: avoid;
+}
+
+.package, .citetitle {
+	font-style: italic;
+}
+
+.titlepage .edition {
+	color: #336699;
+	background-color: transparent;
+	margin-top: 1em;
+	margin-bottom: 1em;
+	font-size: 1.4em;
+	font-weight: bold;
+	text-align: center;
+}
+
+span.remark {
+	background-color: #ff00ff;
+}
+
+.draft {
+	background-image: url(../images/watermark-draft.png);
+	background-repeat: repeat-y;
+        background-position: center;
+}
+
+.foreignphrase {
+	font-style: inherit;
+}
+
+dt {
+	clear:both;
+}
+
+dt img {
+	border-style: none;
+	max-width: 112px;
+}
+
+dt object {
+	max-width: 112px;
+}
+
+dt .inlinemediaobject, dt object {
+	display: inline;
+	float: left;
+	margin-bottom: 1em;
+	padding-right: 1em;
+	width: 112px;
+}
+
+dl:after {
+	display: block;
+	clear: both;
+	content: "";
+}
+
+.toc dd {
+	padding-bottom: 0em;
+	margin-bottom: 1em;
+	padding-left: 1.3em;
+	margin-left: 0em;
+}
+
+div.toc > dl > dt {
+	padding-bottom: 0em;
+	margin-bottom: 0em;
+	margin-top: 1em;
+}
+
+
+.strikethrough {
+	text-decoration: line-through;
+}
+
+.underline {
+	text-decoration: underline;
+}
+
+.calloutlist img, .callout {
+	padding: 0em;
+	margin: 0em;
+	width: 12pt;
+	display: inline;
+	vertical-align: middle;
+}
+
+.stepalternatives {
+	list-style-image: none;
+	list-style-type: none;
+}
+
+
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/css/default.css b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/css/default.css
new file mode 100644
index 0000000..bf38ebb
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/css/default.css
@@ -0,0 +1,3 @@
+ at import url("common.css");
+ at import url("overrides.css");
+ at import url("lang.css");
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/css/lang.css b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/css/lang.css
new file mode 100644
index 0000000..81c3115
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/css/lang.css
@@ -0,0 +1,2 @@
+/* place holder */
+
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/css/overrides.css b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/css/overrides.css
new file mode 100644
index 0000000..057be29
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/css/overrides.css
@@ -0,0 +1,51 @@
+a:link {
+	color:#0066cc;
+}
+
+a:hover, a:active {
+	color:#003366;
+}
+
+a:visited {
+	color:#6699cc;
+}
+
+
+h1 {
+	color:#3c6eb4
+}
+
+.producttitle {
+	background: #3c6eb4 url(../images/h1-bg.png) top left repeat;
+}
+
+.section h1.title {
+	color:#3c6eb4;
+}
+
+
+h2,h3,h4,h5,h6 {
+	color:#3c6eb4;
+}
+
+table {
+	border:1px solid #3c6eb4;
+}
+
+table th {
+	background-color:#3c6eb4;
+}
+
+
+table tr.even td {
+	background-color:#f5f5f5;
+}
+
+.revhistory table th {
+	color:#3c6eb4;
+}
+
+.titlepage .edition {
+	color: #3c6eb4;
+}
+
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/css/print.css b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/css/print.css
new file mode 100644
index 0000000..773d8ae
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/css/print.css
@@ -0,0 +1,16 @@
+ at import url("common.css");
+ at import url("overrides.css");
+ at import url("lang.css");
+
+#tocframe {
+	display: none;
+}
+
+body.toc_embeded {
+	margin-left: 30px;
+}
+
+.producttitle {
+	color: #336699;
+}
+
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/1.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/1.png
new file mode 100644
index 0000000..c21d7a3
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/1.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/1.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/1.svg
new file mode 100644
index 0000000..a2b3903
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/1.svg
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 17.853468,22.008438 -2.564941,0 0,-7.022461 c -5e-6,-0.143873 -5e-6,-0.315422 0,-0.514648 0.0055,-0.204745 0.01106,-0.415031 0.0166,-0.63086 0.01106,-0.221345 0.01936,-0.442699 0.0249,-0.664062 0.01106,-0.221345 0.01936,-0.423331 0.0249,-0.605957 -0.02767,0.03321 -0.07471,0.08302 -0.141113,0.149414 -0.06641,0.06642 -0.141118,0.141122 -0.224122,0.224121 -0.08301,0.07748 -0.168786,0.157724 -0.257324,0.240723 -0.08854,0.08302 -0.17432,0.157723 -0.257324,0.224121 l -1.394531,1.120605 -1.245117,-1.543945 3.909668,-3.1127931 2.108398,0 0,12.1357421"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/10.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/10.png
new file mode 100644
index 0000000..15b81da
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/10.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/10.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/10.svg
new file mode 100644
index 0000000..af015ab
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/10.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 13.215925,22.008438 -2.564941,0 0,-7.022461 c -4e-6,-0.143873 -4e-6,-0.315422 0,-0.514648 0.0055,-0.204745 0.01106,-0.415031 0.0166,-0.63086 0.01106,-0.221345 0.01936,-0.442699 0.0249,-0.664062 0.01106,-0.221345 0.01936,-0.423331 0.0249,-0.605957 -0.02767,0.03321 -0.07471,0.08302 -0.141113,0.149414 -0.06641,0.06642 -0.141118,0.141122 -0.224121,0.224121 -0.08301,0.07748 -0.168787,0.157724 -0.257325,0.240723 -0.08854,0.08302 -0.1743194,0.157723 -0.2573238,0.224121 L 8.442976,14.529434 7.1978588,12.985489 11.107527,9.8726959 l 2.108398,0 0,12.1357421"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 24.6378,15.940567 c -9e-6,0.979497 -0.07748,1.853845 -0.232422,2.623047 -0.149422,0.769208 -0.392912,1.422202 -0.730468,1.958984 -0.332039,0.536785 -0.763679,0.94629 -1.294922,1.228516 -0.525722,0.282226 -1.162115,0.42334 -1.90918,0.42334 -0.702803,0 -1.314294,-0.141114 -1.834473,-0.42334 -0.520184,-0.282226 -0.951824,-0.691731 -1.294922,-1.228516 -0.3431,-0.536782 -0.600424,-1.189776 -0.771972,-1.958984 -0.166016,-0.769202 -0.249024,-1.64355 -0.249024,-2.623047 0,-0.979485 0.07471,-1.8566 0.224121,-2.631348 0.154948,-0.77473 0.398437,-1.430491 0.730469,-1.967285 0.33203,-0.536772 0.760903,-0.946277 1.286621,-1.228515 0.525713,-0.2877487 1.162106,-0.4316287 1.90918,-0.431641 0.69726,1.23e-5 1.305984,0.1411254 1.826172,0.42334 0.520175,0.282238 0.954582,0.691743 1.303223,1.228515 0.348624,0.536794 0.608715,1.192555 0.780273,1.967286 0.171541,0.774747 0.257315,1.654629 0.257324,2.639648 m -5.760742,0 c -3e-6,1.383468 0.118975,2.423832 0.356934,3.121094 0.237952,0.6
 97268 0.650223,1.0459 1.236816,1.045898 0.575516,2e-6 0.987787,-0.345863 1.236816,-1.037597 0.254552,-0.691729 0.38183,-1.734859 0.381836,-3.129395 -6e-6,-1.38899 -0.127284,-2.43212 -0.381836,-3.129395 -0.249029,-0.702789 -0.6613,-1.054188 -1.236816,-1.054199 -0.293299,1.1e-5 -0.542322,0.08855 -0.74707,0.265625 -0.199223,0.177093 -0.362471,0.439951 -0.489746,0.788574 -0.127282,0.348642 -0.218591,0.785816 -0.273926,1.311524 -0.05534,0.52019 -0.08301,1.126146 -0.08301,1.817871"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/11.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/11.png
new file mode 100644
index 0000000..2fcc2dd
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/11.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/11.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/11.svg
new file mode 100644
index 0000000..cb82b70
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/11.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 13.215925,22.008438 -2.564941,0 0,-7.022461 c -4e-6,-0.143873 -4e-6,-0.315422 0,-0.514648 0.0055,-0.204745 0.01106,-0.415031 0.0166,-0.63086 0.01106,-0.221345 0.01936,-0.442699 0.0249,-0.664062 0.01106,-0.221345 0.01936,-0.423331 0.0249,-0.605957 -0.02767,0.03321 -0.07471,0.08302 -0.141113,0.149414 -0.06641,0.06642 -0.141118,0.141122 -0.224121,0.224121 -0.08301,0.07748 -0.168787,0.157724 -0.257325,0.240723 -0.08854,0.08302 -0.1743194,0.157723 -0.2573238,0.224121 L 8.442976,14.529434 7.1978588,12.985489 11.107527,9.8726959 l 2.108398,0 0,12.1357421"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 22.579206,22.008438 -2.564941,0 0,-7.022461 c -4e-6,-0.143873 -4e-6,-0.315422 0,-0.514648 0.0055,-0.204745 0.01106,-0.415031 0.0166,-0.63086 0.01106,-0.221345 0.01936,-0.442699 0.0249,-0.664062 0.01106,-0.221345 0.01936,-0.423331 0.0249,-0.605957 -0.02767,0.03321 -0.07471,0.08302 -0.141113,0.149414 -0.06641,0.06642 -0.141117,0.141122 -0.224121,0.224121 -0.08301,0.07748 -0.168786,0.157724 -0.257324,0.240723 -0.08855,0.08302 -0.17432,0.157723 -0.257325,0.224121 l -1.394531,1.120605 -1.245117,-1.543945 3.909668,-3.1127931 2.108398,0 0,12.1357421"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/12.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/12.png
new file mode 100644
index 0000000..edebe20
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/12.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/12.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/12.svg
new file mode 100644
index 0000000..3b6d822
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/12.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 13.215925,22.008438 -2.564941,0 0,-7.022461 c -4e-6,-0.143873 -4e-6,-0.315422 0,-0.514648 0.0055,-0.204745 0.01106,-0.415031 0.0166,-0.63086 0.01106,-0.221345 0.01936,-0.442699 0.0249,-0.664062 0.01106,-0.221345 0.01936,-0.423331 0.0249,-0.605957 -0.02767,0.03321 -0.07471,0.08302 -0.141113,0.149414 -0.06641,0.06642 -0.141118,0.141122 -0.224121,0.224121 -0.08301,0.07748 -0.168787,0.157724 -0.257325,0.240723 -0.08854,0.08302 -0.1743194,0.157723 -0.2573238,0.224121 L 8.442976,14.529434 7.1978588,12.985489 11.107527,9.8726959 l 2.108398,0 0,12.1357421"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 24.621199,22.008438 -8.143067,0 0,-1.784668 2.855469,-3.07959 c 0.359697,-0.387364 0.686194,-0.744297 0.979492,-1.0708 0.29329,-0.326492 0.54508,-0.644688 0.755371,-0.95459 0.210281,-0.309889 0.37353,-0.625318 0.489746,-0.946289 0.116205,-0.320956 0.174311,-0.666821 0.174317,-1.037598 -6e-6,-0.409496 -0.124518,-0.727692 -0.373535,-0.95459 -0.243495,-0.226878 -0.572759,-0.340322 -0.987793,-0.340332 -0.437179,10e-6 -0.857751,0.10792 -1.261719,0.323731 -0.403974,0.215829 -0.827314,0.522958 -1.27002,0.921386 l -1.394531,-1.651855 c 0.249023,-0.226877 0.509114,-0.442698 0.780274,-0.647461 0.271157,-0.210275 0.569985,-0.395659 0.896484,-0.556152 0.326495,-0.16047 0.686195,-0.2877488 1.079101,-0.3818364 0.3929,-0.099597 0.832841,-0.1494018 1.319825,-0.1494141 0.581049,1.23e-5 1.101231,0.080253 1.560547,0.2407227 0.464837,0.1604938 0.860507,0.3901488 1.187011,0.6889648 0.32649,0.293305 0.575513,0.650239 0.747071,1.070801 0.177075,0.420583 0.265616,0.893727 0.265625,1.419
 433 -9e-6,0.47592 -0.08302,0.932463 -0.249024,1.369629 -0.166024,0.431648 -0.392911,0.857754 -0.680664,1.278321 -0.287768,0.415044 -0.622565,0.830083 -1.004394,1.245117 -0.376309,0.40951 -0.78028,0.827315 -1.211914,1.253418 l -1.460938,1.469238 0,0.116211 4.947266,0 0,2.158203"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/13.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/13.png
new file mode 100644
index 0000000..ec48cef
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/13.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/13.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/13.svg
new file mode 100644
index 0000000..226e461
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/13.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 13.215925,22.008438 -2.564941,0 0,-7.022461 c -4e-6,-0.143873 -4e-6,-0.315422 0,-0.514648 0.0055,-0.204745 0.01106,-0.415031 0.0166,-0.63086 0.01106,-0.221345 0.01936,-0.442699 0.0249,-0.664062 0.01106,-0.221345 0.01936,-0.423331 0.0249,-0.605957 -0.02767,0.03321 -0.07471,0.08302 -0.141113,0.149414 -0.06641,0.06642 -0.141118,0.141122 -0.224121,0.224121 -0.08301,0.07748 -0.168787,0.157724 -0.257325,0.240723 -0.08854,0.08302 -0.1743194,0.157723 -0.2573238,0.224121 L 8.442976,14.529434 7.1978588,12.985489 11.107527,9.8726959 l 2.108398,0 0,12.1357421"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 24.148054,12.587051 c -8e-6,0.420582 -0.06918,0.799651 -0.207519,1.137207 -0.132821,0.33204 -0.318205,0.625334 -0.556153,0.879883 -0.232429,0.249031 -0.509121,0.459317 -0.830078,0.63086 -0.315436,0.166022 -0.658535,0.2933 -1.029297,0.381836 l 0,0.0498 c 0.979486,0.121751 1.721021,0.420579 2.22461,0.896485 0.503572,0.470382 0.755362,1.106775 0.755371,1.909179 -9e-6,0.531253 -0.09685,1.023766 -0.290528,1.477539 -0.188159,0.448244 -0.481453,0.83838 -0.879882,1.170411 -0.392911,0.332031 -0.890958,0.592122 -1.494141,0.780273 -0.597662,0.182617 -1.303227,0.273926 -2.116699,0.273926 -0.652998,0 -1.267256,-0.05534 -1.842774,-0.166016 -0.575522,-0.105143 -1.112305,-0.268392 -1.610351,-0.489746 l 0,-2.183105 c 0.249022,0.132815 0.51188,0.249025 0.788574,0.348632 0.276691,0.09961 0.553384,0.185387 0.830078,0.257325 0.27669,0.06641 0.547849,0.116212 0.813477,0.149414 0.271155,0.0332 0.525712,0.04981 0.763671,0.0498 0.475908,2e-6 0.871578,-0.04427 1.187012,-0.132812 0.315425,
 -0.08854 0.567215,-0.213051 0.755371,-0.373535 0.188146,-0.16048 0.320958,-0.351397 0.398438,-0.572754 0.083,-0.226885 0.124505,-0.473141 0.124512,-0.73877 -7e-6,-0.249019 -0.05258,-0.47314 -0.157715,-0.672363 -0.09962,-0.20474 -0.265631,-0.376289 -0.498047,-0.51464 -0.226893,-0.143876 -0.525721,-0.254553 -0.896485,-0.332032 -0.370772,-0.07747 -0.827315,-0.116205 -1.369628,-0.116211 l -0.863282,0 0,-1.801269 0.84668,0 c 0.509111,7e-6 0.93245,-0.04426 1.270019,-0.132813 0.337561,-0.09407 0.605952,-0.218579 0.805176,-0.373535 0.204747,-0.160474 0.348627,-0.345858 0.431641,-0.556152 0.083,-0.210278 0.124506,-0.434399 0.124512,-0.672363 -6e-6,-0.431632 -0.135585,-0.769197 -0.406739,-1.012696 -0.26563,-0.243479 -0.688969,-0.365224 -1.270019,-0.365234 -0.265629,1e-5 -0.514652,0.02768 -0.747071,0.08301 -0.226891,0.04981 -0.439944,0.116221 -0.63916,0.199218 -0.193687,0.07748 -0.373537,0.166026 -0.53955,0.265625 -0.160484,0.09409 -0.307131,0.188161 -0.439942,0.282227 l -1.294922,-1.7
 09961 c 0.232421,-0.171538 0.484212,-0.329253 0.755371,-0.473145 0.276692,-0.143868 0.575519,-0.26838 0.896485,-0.373535 0.320961,-0.1106647 0.666826,-0.1964393 1.037597,-0.2573239 0.370765,-0.06086 0.766435,-0.091296 1.187012,-0.091309 0.597651,1.23e-5 1.139969,0.066419 1.626953,0.1992188 0.492507,0.1272911 0.913079,0.3154421 1.261719,0.5644531 0.348625,0.243501 0.617017,0.545096 0.805176,0.904786 0.193676,0.354177 0.290519,0.760914 0.290527,1.220214"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/14.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/14.png
new file mode 100644
index 0000000..33d5637
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/14.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/14.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/14.svg
new file mode 100644
index 0000000..5aaa3a3
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/14.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 13.215925,22.008438 -2.564941,0 0,-7.022461 c -4e-6,-0.143873 -4e-6,-0.315422 0,-0.514648 0.0055,-0.204745 0.01106,-0.415031 0.0166,-0.63086 0.01106,-0.221345 0.01936,-0.442699 0.0249,-0.664062 0.01106,-0.221345 0.01936,-0.423331 0.0249,-0.605957 -0.02767,0.03321 -0.07471,0.08302 -0.141113,0.149414 -0.06641,0.06642 -0.141118,0.141122 -0.224121,0.224121 -0.08301,0.07748 -0.168787,0.157724 -0.257325,0.240723 -0.08854,0.08302 -0.1743194,0.157723 -0.2573238,0.224121 L 8.442976,14.529434 7.1978588,12.985489 11.107527,9.8726959 l 2.108398,0 0,12.1357421"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 24.803816,19.493301 -1.460938,0 0,2.515137 -2.498535,0 0,-2.515137 -5.013672,0 0,-1.784668 5.154785,-7.8359371 2.357422,0 0,7.6284181 1.460938,0 0,1.992187 m -3.959473,-1.992187 0,-2.058594 c -5e-6,-0.07193 -5e-6,-0.17431 0,-0.307129 0.0055,-0.138339 0.01106,-0.293287 0.0166,-0.464844 0.0055,-0.171541 0.01106,-0.348625 0.0166,-0.53125 0.01106,-0.182609 0.01936,-0.356925 0.0249,-0.522949 0.01106,-0.166007 0.01936,-0.309887 0.0249,-0.43164 0.01106,-0.12727 0.01936,-0.218579 0.0249,-0.273926 l -0.07471,0 c -0.09961,0.232431 -0.213058,0.478687 -0.340332,0.738769 -0.121749,0.2601 -0.262862,0.520191 -0.42334,0.780274 l -2.02539,3.071289 2.755859,0"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/15.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/15.png
new file mode 100644
index 0000000..f1a4eb2
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/15.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/15.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/15.svg
new file mode 100644
index 0000000..f51dd96
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/15.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 13.215925,22.008438 -2.564941,0 0,-7.022461 c -4e-6,-0.143873 -4e-6,-0.315422 0,-0.514648 0.0055,-0.204745 0.01106,-0.415031 0.0166,-0.63086 0.01106,-0.221345 0.01936,-0.442699 0.0249,-0.664062 0.01106,-0.221345 0.01936,-0.423331 0.0249,-0.605957 -0.02767,0.03321 -0.07471,0.08302 -0.141113,0.149414 -0.06641,0.06642 -0.141118,0.141122 -0.224121,0.224121 -0.08301,0.07748 -0.168787,0.157724 -0.257325,0.240723 -0.08854,0.08302 -0.1743194,0.157723 -0.2573238,0.224121 L 8.442976,14.529434 7.1978588,12.985489 11.107527,9.8726959 l 2.108398,0 0,12.1357421"
+       id="path2839"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 20.761335,14.255508 c 0.520177,8e-6 1.004389,0.08025 1.452637,0.240723 0.448235,0.160489 0.838372,0.395678 1.17041,0.705566 0.332024,0.309903 0.592114,0.697272 0.780274,1.16211 0.188142,0.459315 0.282218,0.987797 0.282226,1.585449 -8e-6,0.658532 -0.102385,1.250654 -0.307129,1.776367 -0.20476,0.520184 -0.506355,0.962892 -0.904785,1.328125 -0.398444,0.359701 -0.893724,0.636394 -1.48584,0.830078 -0.586594,0.193685 -1.261723,0.290528 -2.02539,0.290528 -0.304366,0 -0.605961,-0.01384 -0.904785,-0.0415 -0.298831,-0.02767 -0.586591,-0.06917 -0.863282,-0.124512 -0.27116,-0.04981 -0.531251,-0.116211 -0.780273,-0.199219 -0.243491,-0.08301 -0.464845,-0.17985 -0.664063,-0.290527 l 0,-2.216309 c 0.193684,0.11068 0.417805,0.215823 0.672364,0.31543 0.254555,0.09408 0.517413,0.177086 0.788574,0.249024 0.27669,0.06641 0.553383,0.121746 0.830078,0.166015 0.276689,0.03874 0.539547,0.05811 0.788574,0.05811 0.741532,2e-6 1.305985,-0.152179 1.69336,-0.456543 0.387364,-0.309893 0.581048
 ,-0.799639 0.581054,-1.469239 -6e-6,-0.597651 -0.190924,-1.051427 -0.572754,-1.361328 -0.376307,-0.315424 -0.960128,-0.473139 -1.751464,-0.473144 -0.143884,5e-6 -0.298832,0.0083 -0.464844,0.0249 -0.160485,0.01661 -0.320967,0.03874 -0.481446,0.06641 -0.15495,0.02768 -0.304364,0.05811 -0.448242,0.09131 -0.143882,0.02767 -0.268394,0.05811 -0.373535,0.09131 l -1.020996,-0.547852 0.456543,-6.1840821 6.408203,0 0,2.1748051 -4.183594,0 -0.199218,2.382324 c 0.177079,-0.03873 0.381832,-0.07747 0.614257,-0.116211 0.237952,-0.03873 0.542314,-0.0581 0.913086,-0.05811"
+       id="path2841"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/16.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/16.png
new file mode 100644
index 0000000..d38a155
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/16.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/16.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/16.svg
new file mode 100644
index 0000000..cb7e2f5
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/16.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 13.215925,22.008438 -2.564941,0 0,-7.022461 c -4e-6,-0.143873 -4e-6,-0.315422 0,-0.514648 0.0055,-0.204745 0.01106,-0.415031 0.0166,-0.63086 0.01106,-0.221345 0.01936,-0.442699 0.0249,-0.664062 0.01106,-0.221345 0.01936,-0.423331 0.0249,-0.605957 -0.02767,0.03321 -0.07471,0.08302 -0.141113,0.149414 -0.06641,0.06642 -0.141118,0.141122 -0.224121,0.224121 -0.08301,0.07748 -0.168787,0.157724 -0.257325,0.240723 -0.08854,0.08302 -0.1743194,0.157723 -0.2573238,0.224121 L 8.442976,14.529434 7.1978588,12.985489 11.107527,9.8726959 l 2.108398,0 0,12.1357421"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 16.428328,16.853653 c -1e-6,-0.581049 0.03044,-1.159336 0.09131,-1.734863 0.06641,-0.575514 0.17985,-1.126132 0.340332,-1.651856 0.166015,-0.531241 0.387369,-1.023753 0.664063,-1.477539 0.282224,-0.453765 0.636391,-0.846669 1.0625,-1.178711 0.431637,-0.337553 0.946285,-0.600411 1.543945,-0.788574 0.603185,-0.1936727 1.305984,-0.2905151 2.108398,-0.2905274 0.116205,1.23e-5 0.243483,0.00278 0.381836,0.0083 0.13834,0.00555 0.276686,0.013847 0.415039,0.024902 0.143873,0.00555 0.282219,0.016614 0.415039,0.033203 0.132805,0.016614 0.251783,0.035982 0.356934,0.058105 l 0,2.0502924 c -0.210294,-0.04979 -0.434415,-0.08853 -0.672363,-0.116211 -0.232429,-0.03319 -0.467618,-0.04979 -0.705567,-0.0498 -0.747076,1e-5 -1.361333,0.09408 -1.842773,0.282226 -0.48145,0.182627 -0.863285,0.439951 -1.145508,0.771973 -0.28223,0.33204 -0.484215,0.730477 -0.605957,1.195312 -0.116214,0.464852 -0.188154,0.9795 -0.21582,1.543946 l 0.09961,0 c 0.110674,-0.199212 0.243487,-0.384596 0.398438,-0
 .556153 0.160478,-0.177076 0.345862,-0.32649 0.556152,-0.448242 0.210282,-0.127271 0.445471,-0.22688 0.705566,-0.298828 0.265621,-0.07193 0.561681,-0.107902 0.888184,-0.10791 0.52571,8e-6 0.998854,0.08578 1.419434,0.257324 0.420565,0.171557 0.774732,0.42058 1.0625,0.74707 0.293286,0.326504 0.517407,0.727708 0.672363,1.203614 0.154939,0.475916 0.232413,1.021 0.232422,1.635254 -9e-6,0.658532 -0.09408,1.247887 -0.282227,1.768066 -0.182625,0.520184 -0.445483,0.962892 -0.788574,1.328125 -0.343106,0.359701 -0.758145,0.636394 -1.245117,0.830078 -0.486985,0.188151 -1.034836,0.282227 -1.643555,0.282227 -0.59766,0 -1.156579,-0.105144 -1.676758,-0.31543 -0.520185,-0.21582 -0.97396,-0.542317 -1.361328,-0.979492 -0.381837,-0.437173 -0.683432,-0.987791 -0.904785,-1.651856 -0.215821,-0.669593 -0.323731,-1.460933 -0.32373,-2.374023 m 4.216796,3.270508 c 0.226883,2e-6 0.431636,-0.0415 0.614258,-0.124512 0.188146,-0.08854 0.348627,-0.218585 0.481446,-0.390137 0.13834,-0.17708 0.243483,-0.3984
 34 0.315429,-0.664062 0.07747,-0.265622 0.116205,-0.581051 0.116211,-0.946289 -6e-6,-0.592118 -0.124518,-1.056961 -0.373535,-1.394531 -0.243495,-0.343094 -0.61703,-0.514643 -1.120605,-0.514649 -0.254562,6e-6 -0.486984,0.04981 -0.697266,0.149414 -0.21029,0.09962 -0.390141,0.229661 -0.539551,0.390137 -0.149417,0.160487 -0.265628,0.340337 -0.348633,0.539551 -0.07748,0.199223 -0.116214,0.401209 -0.116211,0.605957 -3e-6,0.28223 0.0332,0.564456 0.09961,0.846679 0.07194,0.276696 0.17708,0.528486 0.315429,0.755371 0.143877,0.221357 0.318193,0.401207 0.52295,0.539551 0.210282,0.138349 0.453771,0.207522 0.730468,0.20752"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/17.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/17.png
new file mode 100644
index 0000000..d83e898
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/17.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/17.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/17.svg
new file mode 100644
index 0000000..5d6f0ad
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/17.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 13.215925,22.008438 -2.564941,0 0,-7.022461 c -4e-6,-0.143873 -4e-6,-0.315422 0,-0.514648 0.0055,-0.204745 0.01106,-0.415031 0.0166,-0.63086 0.01106,-0.221345 0.01936,-0.442699 0.0249,-0.664062 0.01106,-0.221345 0.01936,-0.423331 0.0249,-0.605957 -0.02767,0.03321 -0.07471,0.08302 -0.141113,0.149414 -0.06641,0.06642 -0.141118,0.141122 -0.224121,0.224121 -0.08301,0.07748 -0.168787,0.157724 -0.257325,0.240723 -0.08854,0.08302 -0.1743194,0.157723 -0.2573238,0.224121 L 8.442976,14.529434 7.1978588,12.985489 11.107527,9.8726959 l 2.108398,0 0,12.1357421"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 17.51573,22.008438 4.316406,-9.960937 -5.578125,0 0,-2.1582035 8.367188,0 0,1.6103515 -4.424317,10.508789 -2.681152,0"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/18.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/18.png
new file mode 100644
index 0000000..9e39de4
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/18.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/18.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/18.svg
new file mode 100644
index 0000000..9ea672c
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/18.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 13.215925,22.008438 -2.564941,0 0,-7.022461 c -4e-6,-0.143873 -4e-6,-0.315422 0,-0.514648 0.0055,-0.204745 0.01106,-0.415031 0.0166,-0.63086 0.01106,-0.221345 0.01936,-0.442699 0.0249,-0.664062 0.01106,-0.221345 0.01936,-0.423331 0.0249,-0.605957 -0.02767,0.03321 -0.07471,0.08302 -0.141113,0.149414 -0.06641,0.06642 -0.141118,0.141122 -0.224121,0.224121 -0.08301,0.07748 -0.168787,0.157724 -0.257325,0.240723 -0.08854,0.08302 -0.1743194,0.157723 -0.2573238,0.224121 L 8.442976,14.529434 7.1978588,12.985489 11.107527,9.8726959 l 2.108398,0 0,12.1357421"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 20.48741,9.7149811 c 0.503575,1.23e-5 0.979486,0.060885 1.427734,0.1826172 0.448236,0.1217567 0.841139,0.3043737 1.178711,0.5478517 0.337557,0.243501 0.605949,0.547862 0.805176,0.913086 0.19921,0.365244 0.298819,0.794118 0.298828,1.286621 -9e-6,0.365243 -0.05535,0.697274 -0.166016,0.996094 -0.110685,0.293302 -0.262866,0.561694 -0.456543,0.805175 -0.193692,0.237963 -0.423347,0.451017 -0.688965,0.639161 -0.265631,0.188157 -0.553392,0.359707 -0.863281,0.514648 0.320957,0.171556 0.63362,0.362473 0.937988,0.572754 0.309889,0.210292 0.583814,0.448247 0.821778,0.713867 0.237947,0.260096 0.428865,0.55339 0.572754,0.879883 0.143871,0.326501 0.215811,0.691735 0.21582,1.095703 -9e-6,0.503583 -0.09962,0.960126 -0.298828,1.369629 -0.199227,0.409506 -0.478687,0.758139 -0.838379,1.045898 -0.359708,0.287761 -0.791348,0.509115 -1.294922,0.664063 -0.498053,0.154948 -1.048671,0.232422 -1.651855,0.232422 -0.652999,0 -1.234053,-0.07471 -1.743164,-0.224121 -0.509117,-0.149414 -0.93799
 1,-0.362467 -1.286622,-0.639161 -0.348634,-0.276691 -0.614258,-0.617023 -0.796875,-1.020996 -0.177084,-0.403969 -0.265625,-0.857744 -0.265625,-1.361328 0,-0.415035 0.06087,-0.78857 0.182618,-1.120605 0.121744,-0.332027 0.287759,-0.630855 0.498046,-0.896485 0.210285,-0.265619 0.456542,-0.500808 0.73877,-0.705566 0.282224,-0.204747 0.583819,-0.384597 0.904785,-0.539551 -0.271161,-0.171543 -0.525718,-0.356927 -0.763672,-0.556152 -0.237957,-0.204746 -0.445477,-0.428866 -0.622558,-0.672363 -0.171551,-0.249016 -0.309897,-0.522942 -0.415039,-0.821778 -0.09961,-0.298819 -0.149415,-0.628083 -0.149414,-0.987793 -1e-6,-0.481435 0.09961,-0.902008 0.298828,-1.261718 0.204751,-0.365224 0.478676,-0.669585 0.821777,-0.913086 0.343097,-0.249012 0.738767,-0.434396 1.187012,-0.5561527 0.448238,-0.1217326 0.918615,-0.1826049 1.411133,-0.1826172 m -1.718262,9.0644529 c -3e-6,0.221357 0.03597,0.42611 0.10791,0.614258 0.07194,0.18262 0.17708,0.340334 0.31543,0.473145 0.143876,0.132814 0.32096,0.23
 7957 0.53125,0.315429 0.210282,0.07194 0.453771,0.107912 0.730468,0.10791 0.58105,2e-6 1.015457,-0.135577 1.303223,-0.406738 0.287754,-0.27669 0.431634,-0.639157 0.431641,-1.087402 -7e-6,-0.232419 -0.04981,-0.439938 -0.149414,-0.622559 -0.09408,-0.188147 -0.218594,-0.359696 -0.373535,-0.514648 -0.14942,-0.160478 -0.32097,-0.307125 -0.514649,-0.439942 -0.19369,-0.132807 -0.387375,-0.260086 -0.581055,-0.381836 L 20.3878,16.72084 c -0.243494,0.12175 -0.464848,0.254563 -0.664062,0.398438 -0.199223,0.138351 -0.370772,0.293299 -0.514649,0.464844 -0.138349,0.16602 -0.246259,0.348637 -0.32373,0.547851 -0.07748,0.199223 -0.116214,0.415043 -0.116211,0.647461 m 1.70166,-7.188476 c -0.182622,10e-6 -0.354171,0.02768 -0.514648,0.08301 -0.154952,0.05535 -0.290532,0.13559 -0.406739,0.240723 -0.11068,0.105153 -0.199222,0.235199 -0.265625,0.390137 -0.06641,0.154957 -0.09961,0.329274 -0.09961,0.522949 -3e-6,0.232431 0.0332,0.434416 0.09961,0.605957 0.07194,0.166024 0.166012,0.315438 0.282227,0
 .448242 0.121741,0.127287 0.260087,0.243498 0.415039,0.348633 0.160477,0.09962 0.32926,0.199226 0.506348,0.298828 0.171544,-0.08853 0.334793,-0.185376 0.489746,-0.290527 0.154942,-0.105135 0.290522,-0.224113 0.406738,-0.356934 0.121739,-0.138338 0.218581,-0.293286 0.290527,-0.464843 0.07193,-0.171541 0.107904,-0.367993 0.10791,-0.589356 -6e-6,-0.193675 -0.03321,-0.367992 -0.09961,-0.522949 -0.06641,-0.154938 -0.15772,-0.284984 -0.273926,-0.390137 -0.116216,-0.105133 -0.254562,-0.185374 -0.415039,-0.240723 -0.160487,-0.05533 -0.334803,-0.083 -0.522949,-0.08301"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/19.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/19.png
new file mode 100644
index 0000000..9eeedfb
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/19.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/19.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/19.svg
new file mode 100644
index 0000000..80d1d09
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/19.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 13.215925,22.008438 -2.564941,0 0,-7.022461 c -4e-6,-0.143873 -4e-6,-0.315422 0,-0.514648 0.0055,-0.204745 0.01106,-0.415031 0.0166,-0.63086 0.01106,-0.221345 0.01936,-0.442699 0.0249,-0.664062 0.01106,-0.221345 0.01936,-0.423331 0.0249,-0.605957 -0.02767,0.03321 -0.07471,0.08302 -0.141113,0.149414 -0.06641,0.06642 -0.141118,0.141122 -0.224121,0.224121 -0.08301,0.07748 -0.168787,0.157724 -0.257325,0.240723 -0.08854,0.08302 -0.1743194,0.157723 -0.2573238,0.224121 L 8.442976,14.529434 7.1978588,12.985489 11.107527,9.8726959 l 2.108398,0 0,12.1357421"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 24.554792,15.052383 c -8e-6,0.581061 -0.03321,1.162116 -0.09961,1.743164 -0.06088,0.575526 -0.174325,1.126144 -0.340332,1.651856 -0.16049,0.525719 -0.381844,1.018232 -0.664063,1.477539 -0.2767,0.453778 -0.630866,0.846681 -1.0625,1.178711 -0.426112,0.332032 -0.94076,0.59489 -1.543945,0.788574 -0.597661,0.188151 -1.300459,0.282227 -2.108398,0.282227 -0.116214,0 -0.243493,-0.0028 -0.381836,-0.0083 -0.138349,-0.0055 -0.279462,-0.01384 -0.42334,-0.0249 -0.138348,-0.0055 -0.273928,-0.0166 -0.406738,-0.0332 -0.132814,-0.01107 -0.249025,-0.02767 -0.348633,-0.0498 l 0,-2.058594 c 0.204751,0.05534 0.423338,0.09961 0.655762,0.132813 0.237953,0.02767 0.478675,0.04151 0.722168,0.0415 0.747066,2e-6 1.361324,-0.09131 1.842773,-0.273925 0.48144,-0.188149 0.863276,-0.44824 1.145508,-0.780274 0.28222,-0.337562 0.481439,-0.738766 0.597656,-1.203613 0.121738,-0.464839 0.196445,-0.97672 0.224121,-1.535645 l -0.10791,0 c -0.110683,0.199225 -0.243496,0.384609 -0.398438,0.556153 -0.1549
 53,0.171554 -0.33757,0.320968 -0.547851,0.448242 -0.210292,0.127283 -0.448247,0.226892 -0.713867,0.298828 -0.26563,0.07194 -0.561691,0.107914 -0.888184,0.10791 -0.525719,4e-6 -0.998863,-0.08577 -1.419433,-0.257324 -0.420575,-0.171545 -0.777509,-0.420568 -1.070801,-0.74707 -0.287762,-0.326492 -0.509116,-0.727696 -0.664063,-1.203614 -0.154948,-0.475904 -0.232422,-1.020988 -0.232422,-1.635253 0,-0.65852 0.09131,-1.247875 0.273926,-1.768067 0.18815,-0.520172 0.453775,-0.960113 0.796875,-1.319824 0.343097,-0.365223 0.758136,-0.644682 1.245117,-0.838379 0.49251,-0.1936727 1.043128,-0.2905151 1.651856,-0.2905274 0.597651,1.23e-5 1.15657,0.1079224 1.676758,0.3237304 0.520175,0.210298 0.971184,0.534028 1.353027,0.971192 0.381828,0.437185 0.683423,0.990569 0.904785,1.660156 0.221346,0.669605 0.332023,1.458178 0.332031,2.365722 m -4.216796,-3.262207 c -0.226893,1.1e-5 -0.434412,0.04151 -0.622559,0.124512 -0.188155,0.08302 -0.351403,0.213063 -0.489746,0.390137 -0.132816,0.171559 -0.2379
 59,0.392913 -0.31543,0.664062 -0.07194,0.265634 -0.107913,0.581063 -0.10791,0.946289 -3e-6,0.586596 0.124509,1.05144 0.373535,1.394532 0.24902,0.343105 0.625322,0.514654 1.128906,0.514648 0.254553,6e-6 0.486975,-0.0498 0.697266,-0.149414 0.210281,-0.0996 0.390131,-0.229648 0.539551,-0.390137 0.149408,-0.160475 0.262852,-0.340325 0.340332,-0.53955 0.083,-0.199212 0.124505,-0.401197 0.124512,-0.605958 -7e-6,-0.282218 -0.03598,-0.561677 -0.107911,-0.838378 -0.06641,-0.282218 -0.171555,-0.534008 -0.315429,-0.755372 -0.138352,-0.226878 -0.312669,-0.409495 -0.52295,-0.547851 -0.204757,-0.138336 -0.44548,-0.207509 -0.722167,-0.20752"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/2.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/2.png
new file mode 100644
index 0000000..ff9cc57
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/2.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/2.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/2.svg
new file mode 100644
index 0000000..8e94260
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/2.svg
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 19.89546,22.008438 -8.143066,0 0,-1.784668 2.855468,-3.07959 c 0.359697,-0.387364 0.686194,-0.744297 0.979493,-1.0708 0.293289,-0.326492 0.545079,-0.644688 0.755371,-0.95459 0.210281,-0.309889 0.373529,-0.625318 0.489746,-0.946289 0.116205,-0.320956 0.17431,-0.666821 0.174316,-1.037598 -6e-6,-0.409496 -0.124517,-0.727692 -0.373535,-0.95459 -0.243495,-0.226878 -0.572759,-0.340322 -0.987793,-0.340332 -0.437178,10e-6 -0.857751,0.10792 -1.261719,0.323731 -0.403974,0.215829 -0.827313,0.522958 -1.270019,0.921386 l -1.394531,-1.651855 c 0.249022,-0.226877 0.509113,-0.442698 0.780273,-0.647461 0.271157,-0.210275 0.569985,-0.395659 0.896484,-0.556152 0.326495,-0.16047 0.686195,-0.2877488 1.079102,-0.3818364 0.3929,-0.099597 0.832841,-0.1494018 1.319824,-0.1494141 0.58105,1.23e-5 1.101231,0.080253 1.560547,0.2407227 0.464837,0.1604938 0.860507,0.3901488 1.187012,0.6889648 0.326489,0.293305 0.575513,0.650239 0.74707,1.070801 0.177075,0.420583 0.265617,0.893727 0.265625,1.41
 9433 -8e-6,0.47592 -0.08302,0.932463 -0.249023,1.369629 -0.166024,0.431648 -0.392912,0.857754 -0.680664,1.278321 -0.287768,0.415044 -0.622566,0.830083 -1.004395,1.245117 -0.376308,0.40951 -0.780279,0.827315 -1.211914,1.253418 l -1.460937,1.469238 0,0.116211 4.947265,0 0,2.158203"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/20.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/20.png
new file mode 100644
index 0000000..b28b4aa
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/20.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/20.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/20.svg
new file mode 100644
index 0000000..409ac6e
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/20.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 15.257917,22.008438 -8.143066,0 0,-1.784668 2.8554687,-3.07959 c 0.3596963,-0.387364 0.6861933,-0.744297 0.9794923,-1.0708 0.293289,-0.326492 0.54508,-0.644688 0.755371,-0.95459 0.210281,-0.309889 0.37353,-0.625318 0.489746,-0.946289 0.116205,-0.320956 0.174311,-0.666821 0.174317,-1.037598 -6e-6,-0.409496 -0.124518,-0.727692 -0.373536,-0.95459 -0.243495,-0.226878 -0.572759,-0.340322 -0.987793,-0.340332 -0.437178,10e-6 -0.857751,0.10792 -1.2617183,0.323731 C 9.3422244,12.379541 8.918885,12.68667 8.4761791,13.085098 L 7.0816479,11.433243 C 7.3306704,11.206366 7.5907613,10.990545 7.8619213,10.785782 8.1330785,10.575507 8.4319063,10.390123 8.7584057,10.22963 9.0849004,10.06916 9.4446006,9.9418812 9.8375072,9.8477936 10.230407,9.7481965 10.670348,9.6983918 11.157331,9.6983795 c 0.58105,1.23e-5 1.101232,0.080253 1.560547,0.2407227 0.464837,0.1604938 0.860508,0.3901488 1.187012,0.6889648 0.32649,0.293305 0.575513,0.650239 0.74707,1.070801 0.177075,0.420583 0.265617,0.89
 3727 0.265625,1.419433 -8e-6,0.47592 -0.08302,0.932463 -0.249023,1.369629 -0.166024,0.431648 -0.392912,0.857754 -0.680664,1.278321 -0.287768,0.415044 -0.622566,0.830083 -1.004395,1.245117 -0.376308,0.40951 -0.780279,0.827315 -1.211914,1.253418 l -1.460937,1.469238 0,0.116211 4.947265,0 0,2.158203"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 24.6378,15.940567 c -9e-6,0.979497 -0.07748,1.853845 -0.232422,2.623047 -0.149422,0.769208 -0.392912,1.422202 -0.730468,1.958984 -0.332039,0.536785 -0.763679,0.94629 -1.294922,1.228516 -0.525722,0.282226 -1.162115,0.42334 -1.90918,0.42334 -0.702803,0 -1.314294,-0.141114 -1.834473,-0.42334 -0.520184,-0.282226 -0.951824,-0.691731 -1.294922,-1.228516 -0.3431,-0.536782 -0.600424,-1.189776 -0.771972,-1.958984 -0.166016,-0.769202 -0.249024,-1.64355 -0.249024,-2.623047 0,-0.979485 0.07471,-1.8566 0.224121,-2.631348 0.154948,-0.77473 0.398437,-1.430491 0.730469,-1.967285 0.33203,-0.536772 0.760903,-0.946277 1.286621,-1.228515 0.525713,-0.2877487 1.162106,-0.4316287 1.90918,-0.431641 0.69726,1.23e-5 1.305984,0.1411254 1.826172,0.42334 0.520175,0.282238 0.954582,0.691743 1.303223,1.228515 0.348624,0.536794 0.608715,1.192555 0.780273,1.967286 0.171541,0.774747 0.257315,1.654629 0.257324,2.639648 m -5.760742,0 c -3e-6,1.383468 0.118975,2.423832 0.356934,3.121094 0.237952,0.6
 97268 0.650223,1.0459 1.236816,1.045898 0.575516,2e-6 0.987787,-0.345863 1.236816,-1.037597 0.254552,-0.691729 0.38183,-1.734859 0.381836,-3.129395 -6e-6,-1.38899 -0.127284,-2.43212 -0.381836,-3.129395 -0.249029,-0.702789 -0.6613,-1.054188 -1.236816,-1.054199 -0.293299,1.1e-5 -0.542322,0.08855 -0.74707,0.265625 -0.199223,0.177093 -0.362471,0.439951 -0.489746,0.788574 -0.127282,0.348642 -0.218591,0.785816 -0.273926,1.311524 -0.05534,0.52019 -0.08301,1.126146 -0.08301,1.817871"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/21.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/21.png
new file mode 100644
index 0000000..eda952c
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/21.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/21.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/21.svg
new file mode 100644
index 0000000..7bc03af
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/21.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 15.257917,22.008438 -8.143066,0 0,-1.784668 2.8554687,-3.07959 c 0.3596963,-0.387364 0.6861933,-0.744297 0.9794923,-1.0708 0.293289,-0.326492 0.54508,-0.644688 0.755371,-0.95459 0.210281,-0.309889 0.37353,-0.625318 0.489746,-0.946289 0.116205,-0.320956 0.174311,-0.666821 0.174317,-1.037598 -6e-6,-0.409496 -0.124518,-0.727692 -0.373536,-0.95459 -0.243495,-0.226878 -0.572759,-0.340322 -0.987793,-0.340332 -0.437178,10e-6 -0.857751,0.10792 -1.2617183,0.323731 C 9.3422244,12.379541 8.918885,12.68667 8.4761791,13.085098 L 7.0816479,11.433243 C 7.3306704,11.206366 7.5907613,10.990545 7.8619213,10.785782 8.1330785,10.575507 8.4319063,10.390123 8.7584057,10.22963 9.0849004,10.06916 9.4446006,9.9418812 9.8375072,9.8477936 10.230407,9.7481965 10.670348,9.6983918 11.157331,9.6983795 c 0.58105,1.23e-5 1.101232,0.080253 1.560547,0.2407227 0.464837,0.1604938 0.860508,0.3901488 1.187012,0.6889648 0.32649,0.293305 0.575513,0.650239 0.74707,1.070801 0.177075,0.420583 0.265617,0.89
 3727 0.265625,1.419433 -8e-6,0.47592 -0.08302,0.932463 -0.249023,1.369629 -0.166024,0.431648 -0.392912,0.857754 -0.680664,1.278321 -0.287768,0.415044 -0.622566,0.830083 -1.004395,1.245117 -0.376308,0.40951 -0.780279,0.827315 -1.211914,1.253418 l -1.460937,1.469238 0,0.116211 4.947265,0 0,2.158203"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 22.579206,22.008438 -2.564941,0 0,-7.022461 c -4e-6,-0.143873 -4e-6,-0.315422 0,-0.514648 0.0055,-0.204745 0.01106,-0.415031 0.0166,-0.63086 0.01106,-0.221345 0.01936,-0.442699 0.0249,-0.664062 0.01106,-0.221345 0.01936,-0.423331 0.0249,-0.605957 -0.02767,0.03321 -0.07471,0.08302 -0.141113,0.149414 -0.06641,0.06642 -0.141117,0.141122 -0.224121,0.224121 -0.08301,0.07748 -0.168786,0.157724 -0.257324,0.240723 -0.08855,0.08302 -0.17432,0.157723 -0.257325,0.224121 l -1.394531,1.120605 -1.245117,-1.543945 3.909668,-3.1127931 2.108398,0 0,12.1357421"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/22.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/22.png
new file mode 100644
index 0000000..90b14b0
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/22.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/22.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/22.svg
new file mode 100644
index 0000000..fe086f6
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/22.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 15.257917,22.008438 -8.143066,0 0,-1.784668 2.8554687,-3.07959 c 0.3596963,-0.387364 0.6861933,-0.744297 0.9794923,-1.0708 0.293289,-0.326492 0.54508,-0.644688 0.755371,-0.95459 0.210281,-0.309889 0.37353,-0.625318 0.489746,-0.946289 0.116205,-0.320956 0.174311,-0.666821 0.174317,-1.037598 -6e-6,-0.409496 -0.124518,-0.727692 -0.373536,-0.95459 -0.243495,-0.226878 -0.572759,-0.340322 -0.987793,-0.340332 -0.437178,10e-6 -0.857751,0.10792 -1.2617183,0.323731 C 9.3422244,12.379541 8.918885,12.68667 8.4761791,13.085098 L 7.0816479,11.433243 C 7.3306704,11.206366 7.5907613,10.990545 7.8619213,10.785782 8.1330785,10.575507 8.4319063,10.390123 8.7584057,10.22963 9.0849004,10.06916 9.4446006,9.9418812 9.8375072,9.8477936 10.230407,9.7481965 10.670348,9.6983918 11.157331,9.6983795 c 0.58105,1.23e-5 1.101232,0.080253 1.560547,0.2407227 0.464837,0.1604938 0.860508,0.3901488 1.187012,0.6889648 0.32649,0.293305 0.575513,0.650239 0.74707,1.070801 0.177075,0.420583 0.265617,0.89
 3727 0.265625,1.419433 -8e-6,0.47592 -0.08302,0.932463 -0.249023,1.369629 -0.166024,0.431648 -0.392912,0.857754 -0.680664,1.278321 -0.287768,0.415044 -0.622566,0.830083 -1.004395,1.245117 -0.376308,0.40951 -0.780279,0.827315 -1.211914,1.253418 l -1.460937,1.469238 0,0.116211 4.947265,0 0,2.158203"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 24.621199,22.008438 -8.143067,0 0,-1.784668 2.855469,-3.07959 c 0.359697,-0.387364 0.686194,-0.744297 0.979492,-1.0708 0.29329,-0.326492 0.54508,-0.644688 0.755371,-0.95459 0.210281,-0.309889 0.37353,-0.625318 0.489746,-0.946289 0.116205,-0.320956 0.174311,-0.666821 0.174317,-1.037598 -6e-6,-0.409496 -0.124518,-0.727692 -0.373535,-0.95459 -0.243495,-0.226878 -0.572759,-0.340322 -0.987793,-0.340332 -0.437179,10e-6 -0.857751,0.10792 -1.261719,0.323731 -0.403974,0.215829 -0.827314,0.522958 -1.27002,0.921386 l -1.394531,-1.651855 c 0.249023,-0.226877 0.509114,-0.442698 0.780274,-0.647461 0.271157,-0.210275 0.569985,-0.395659 0.896484,-0.556152 0.326495,-0.16047 0.686195,-0.2877488 1.079101,-0.3818364 0.3929,-0.099597 0.832841,-0.1494018 1.319825,-0.1494141 0.581049,1.23e-5 1.101231,0.080253 1.560547,0.2407227 0.464837,0.1604938 0.860507,0.3901488 1.187011,0.6889648 0.32649,0.293305 0.575513,0.650239 0.747071,1.070801 0.177075,0.420583 0.265616,0.893727 0.265625,1.419
 433 -9e-6,0.47592 -0.08302,0.932463 -0.249024,1.369629 -0.166024,0.431648 -0.392911,0.857754 -0.680664,1.278321 -0.287768,0.415044 -0.622565,0.830083 -1.004394,1.245117 -0.376309,0.40951 -0.78028,0.827315 -1.211914,1.253418 l -1.460938,1.469238 0,0.116211 4.947266,0 0,2.158203"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/23.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/23.png
new file mode 100644
index 0000000..8b35a74
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/23.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/23.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/23.svg
new file mode 100644
index 0000000..f17ec29
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/23.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 15.257917,22.008438 -8.143066,0 0,-1.784668 2.8554687,-3.07959 c 0.3596963,-0.387364 0.6861933,-0.744297 0.9794923,-1.0708 0.293289,-0.326492 0.54508,-0.644688 0.755371,-0.95459 0.210281,-0.309889 0.37353,-0.625318 0.489746,-0.946289 0.116205,-0.320956 0.174311,-0.666821 0.174317,-1.037598 -6e-6,-0.409496 -0.124518,-0.727692 -0.373536,-0.95459 -0.243495,-0.226878 -0.572759,-0.340322 -0.987793,-0.340332 -0.437178,10e-6 -0.857751,0.10792 -1.2617183,0.323731 C 9.3422244,12.379541 8.918885,12.68667 8.4761791,13.085098 L 7.0816479,11.433243 C 7.3306704,11.206366 7.5907613,10.990545 7.8619213,10.785782 8.1330785,10.575507 8.4319063,10.390123 8.7584057,10.22963 9.0849004,10.06916 9.4446006,9.9418812 9.8375072,9.8477936 10.230407,9.7481965 10.670348,9.6983918 11.157331,9.6983795 c 0.58105,1.23e-5 1.101232,0.080253 1.560547,0.2407227 0.464837,0.1604938 0.860508,0.3901488 1.187012,0.6889648 0.32649,0.293305 0.575513,0.650239 0.74707,1.070801 0.177075,0.420583 0.265617,0.89
 3727 0.265625,1.419433 -8e-6,0.47592 -0.08302,0.932463 -0.249023,1.369629 -0.166024,0.431648 -0.392912,0.857754 -0.680664,1.278321 -0.287768,0.415044 -0.622566,0.830083 -1.004395,1.245117 -0.376308,0.40951 -0.780279,0.827315 -1.211914,1.253418 l -1.460937,1.469238 0,0.116211 4.947265,0 0,2.158203"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 24.148054,12.587051 c -8e-6,0.420582 -0.06918,0.799651 -0.207519,1.137207 -0.132821,0.33204 -0.318205,0.625334 -0.556153,0.879883 -0.232429,0.249031 -0.509121,0.459317 -0.830078,0.63086 -0.315436,0.166022 -0.658535,0.2933 -1.029297,0.381836 l 0,0.0498 c 0.979486,0.121751 1.721021,0.420579 2.22461,0.896485 0.503572,0.470382 0.755362,1.106775 0.755371,1.909179 -9e-6,0.531253 -0.09685,1.023766 -0.290528,1.477539 -0.188159,0.448244 -0.481453,0.83838 -0.879882,1.170411 -0.392911,0.332031 -0.890958,0.592122 -1.494141,0.780273 -0.597662,0.182617 -1.303227,0.273926 -2.116699,0.273926 -0.652998,0 -1.267256,-0.05534 -1.842774,-0.166016 -0.575522,-0.105143 -1.112305,-0.268392 -1.610351,-0.489746 l 0,-2.183105 c 0.249022,0.132815 0.51188,0.249025 0.788574,0.348632 0.276691,0.09961 0.553384,0.185387 0.830078,0.257325 0.27669,0.06641 0.547849,0.116212 0.813477,0.149414 0.271155,0.0332 0.525712,0.04981 0.763671,0.0498 0.475908,2e-6 0.871578,-0.04427 1.187012,-0.132812 0.315425,
 -0.08854 0.567215,-0.213051 0.755371,-0.373535 0.188146,-0.16048 0.320958,-0.351397 0.398438,-0.572754 0.083,-0.226885 0.124505,-0.473141 0.124512,-0.73877 -7e-6,-0.249019 -0.05258,-0.47314 -0.157715,-0.672363 -0.09962,-0.20474 -0.265631,-0.376289 -0.498047,-0.51464 -0.226893,-0.143876 -0.525721,-0.254553 -0.896485,-0.332032 -0.370772,-0.07747 -0.827315,-0.116205 -1.369628,-0.116211 l -0.863282,0 0,-1.801269 0.84668,0 c 0.509111,7e-6 0.93245,-0.04426 1.270019,-0.132813 0.337561,-0.09407 0.605952,-0.218579 0.805176,-0.373535 0.204747,-0.160474 0.348627,-0.345858 0.431641,-0.556152 0.083,-0.210278 0.124506,-0.434399 0.124512,-0.672363 -6e-6,-0.431632 -0.135585,-0.769197 -0.406739,-1.012696 -0.26563,-0.243479 -0.688969,-0.365224 -1.270019,-0.365234 -0.265629,1e-5 -0.514652,0.02768 -0.747071,0.08301 -0.226891,0.04981 -0.439944,0.116221 -0.63916,0.199218 -0.193687,0.07748 -0.373537,0.166026 -0.53955,0.265625 -0.160484,0.09409 -0.307131,0.188161 -0.439942,0.282227 l -1.294922,-1.7
 09961 c 0.232421,-0.171538 0.484212,-0.329253 0.755371,-0.473145 0.276692,-0.143868 0.575519,-0.26838 0.896485,-0.373535 0.320961,-0.1106647 0.666826,-0.1964393 1.037597,-0.2573239 0.370765,-0.06086 0.766435,-0.091296 1.187012,-0.091309 0.597651,1.23e-5 1.139969,0.066419 1.626953,0.1992188 0.492507,0.1272911 0.913079,0.3154421 1.261719,0.5644531 0.348625,0.243501 0.617017,0.545096 0.805176,0.904786 0.193676,0.354177 0.290519,0.760914 0.290527,1.220214"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/24.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/24.png
new file mode 100644
index 0000000..6041b02
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/24.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/24.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/24.svg
new file mode 100644
index 0000000..42a5333
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/24.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 15.257917,22.008438 -8.143066,0 0,-1.784668 2.8554687,-3.07959 c 0.3596963,-0.387364 0.6861933,-0.744297 0.9794923,-1.0708 0.293289,-0.326492 0.54508,-0.644688 0.755371,-0.95459 0.210281,-0.309889 0.37353,-0.625318 0.489746,-0.946289 0.116205,-0.320956 0.174311,-0.666821 0.174317,-1.037598 -6e-6,-0.409496 -0.124518,-0.727692 -0.373536,-0.95459 -0.243495,-0.226878 -0.572759,-0.340322 -0.987793,-0.340332 -0.437178,10e-6 -0.857751,0.10792 -1.2617183,0.323731 C 9.3422244,12.379541 8.918885,12.68667 8.4761791,13.085098 L 7.0816479,11.433243 C 7.3306704,11.206366 7.5907613,10.990545 7.8619213,10.785782 8.1330785,10.575507 8.4319063,10.390123 8.7584057,10.22963 9.0849004,10.06916 9.4446006,9.9418812 9.8375072,9.8477936 10.230407,9.7481965 10.670348,9.6983918 11.157331,9.6983795 c 0.58105,1.23e-5 1.101232,0.080253 1.560547,0.2407227 0.464837,0.1604938 0.860508,0.3901488 1.187012,0.6889648 0.32649,0.293305 0.575513,0.650239 0.74707,1.070801 0.177075,0.420583 0.265617,0.89
 3727 0.265625,1.419433 -8e-6,0.47592 -0.08302,0.932463 -0.249023,1.369629 -0.166024,0.431648 -0.392912,0.857754 -0.680664,1.278321 -0.287768,0.415044 -0.622566,0.830083 -1.004395,1.245117 -0.376308,0.40951 -0.780279,0.827315 -1.211914,1.253418 l -1.460937,1.469238 0,0.116211 4.947265,0 0,2.158203"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 24.803816,19.493301 -1.460938,0 0,2.515137 -2.498535,0 0,-2.515137 -5.013672,0 0,-1.784668 5.154785,-7.8359371 2.357422,0 0,7.6284181 1.460938,0 0,1.992187 m -3.959473,-1.992187 0,-2.058594 c -5e-6,-0.07193 -5e-6,-0.17431 0,-0.307129 0.0055,-0.138339 0.01106,-0.293287 0.0166,-0.464844 0.0055,-0.171541 0.01106,-0.348625 0.0166,-0.53125 0.01106,-0.182609 0.01936,-0.356925 0.0249,-0.522949 0.01106,-0.166007 0.01936,-0.309887 0.0249,-0.43164 0.01106,-0.12727 0.01936,-0.218579 0.0249,-0.273926 l -0.07471,0 c -0.09961,0.232431 -0.213058,0.478687 -0.340332,0.738769 -0.121749,0.2601 -0.262862,0.520191 -0.42334,0.780274 l -2.02539,3.071289 2.755859,0"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/25.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/25.png
new file mode 100644
index 0000000..ecb15e6
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/25.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/25.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/25.svg
new file mode 100644
index 0000000..a8d4672
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/25.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 15.257917,22.008438 -8.143066,0 0,-1.784668 2.8554687,-3.07959 c 0.3596963,-0.387364 0.6861933,-0.744297 0.9794923,-1.0708 0.293289,-0.326492 0.54508,-0.644688 0.755371,-0.95459 0.210281,-0.309889 0.37353,-0.625318 0.489746,-0.946289 0.116205,-0.320956 0.174311,-0.666821 0.174317,-1.037598 -6e-6,-0.409496 -0.124518,-0.727692 -0.373536,-0.95459 -0.243495,-0.226878 -0.572759,-0.340322 -0.987793,-0.340332 -0.437178,10e-6 -0.857751,0.10792 -1.2617183,0.323731 C 9.3422244,12.379541 8.918885,12.68667 8.4761791,13.085098 L 7.0816479,11.433243 C 7.3306704,11.206366 7.5907613,10.990545 7.8619213,10.785782 8.1330785,10.575507 8.4319063,10.390123 8.7584057,10.22963 9.0849004,10.06916 9.4446006,9.9418812 9.8375072,9.8477936 10.230407,9.7481965 10.670348,9.6983918 11.157331,9.6983795 c 0.58105,1.23e-5 1.101232,0.080253 1.560547,0.2407227 0.464837,0.1604938 0.860508,0.3901488 1.187012,0.6889648 0.32649,0.293305 0.575513,0.650239 0.74707,1.070801 0.177075,0.420583 0.265617,0.89
 3727 0.265625,1.419433 -8e-6,0.47592 -0.08302,0.932463 -0.249023,1.369629 -0.166024,0.431648 -0.392912,0.857754 -0.680664,1.278321 -0.287768,0.415044 -0.622566,0.830083 -1.004395,1.245117 -0.376308,0.40951 -0.780279,0.827315 -1.211914,1.253418 l -1.460937,1.469238 0,0.116211 4.947265,0 0,2.158203"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 20.761335,14.255508 c 0.520177,8e-6 1.004389,0.08025 1.452637,0.240723 0.448235,0.160489 0.838372,0.395678 1.17041,0.705566 0.332024,0.309903 0.592114,0.697272 0.780274,1.16211 0.188142,0.459315 0.282218,0.987797 0.282226,1.585449 -8e-6,0.658532 -0.102385,1.250654 -0.307129,1.776367 -0.20476,0.520184 -0.506355,0.962892 -0.904785,1.328125 -0.398444,0.359701 -0.893724,0.636394 -1.48584,0.830078 -0.586594,0.193685 -1.261723,0.290528 -2.02539,0.290528 -0.304366,0 -0.605961,-0.01384 -0.904785,-0.0415 -0.298831,-0.02767 -0.586591,-0.06917 -0.863282,-0.124512 -0.27116,-0.04981 -0.531251,-0.116211 -0.780273,-0.199219 -0.243491,-0.08301 -0.464845,-0.17985 -0.664063,-0.290527 l 0,-2.216309 c 0.193684,0.11068 0.417805,0.215823 0.672364,0.31543 0.254555,0.09408 0.517413,0.177086 0.788574,0.249024 0.27669,0.06641 0.553383,0.121746 0.830078,0.166015 0.276689,0.03874 0.539547,0.05811 0.788574,0.05811 0.741532,2e-6 1.305985,-0.152179 1.69336,-0.456543 0.387364,-0.309893 0.581048
 ,-0.799639 0.581054,-1.469239 -6e-6,-0.597651 -0.190924,-1.051427 -0.572754,-1.361328 -0.376307,-0.315424 -0.960128,-0.473139 -1.751464,-0.473144 -0.143884,5e-6 -0.298832,0.0083 -0.464844,0.0249 -0.160485,0.01661 -0.320967,0.03874 -0.481446,0.06641 -0.15495,0.02768 -0.304364,0.05811 -0.448242,0.09131 -0.143882,0.02767 -0.268394,0.05811 -0.373535,0.09131 l -1.020996,-0.547852 0.456543,-6.1840821 6.408203,0 0,2.1748051 -4.183594,0 -0.199218,2.382324 c 0.177079,-0.03873 0.381832,-0.07747 0.614257,-0.116211 0.237952,-0.03873 0.542314,-0.0581 0.913086,-0.05811"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/26.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/26.png
new file mode 100644
index 0000000..4b2f560
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/26.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/26.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/26.svg
new file mode 100644
index 0000000..3cf00ec
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/26.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 15.257917,22.008438 -8.143066,0 0,-1.784668 2.8554687,-3.07959 c 0.3596963,-0.387364 0.6861933,-0.744297 0.9794923,-1.0708 0.293289,-0.326492 0.54508,-0.644688 0.755371,-0.95459 0.210281,-0.309889 0.37353,-0.625318 0.489746,-0.946289 0.116205,-0.320956 0.174311,-0.666821 0.174317,-1.037598 -6e-6,-0.409496 -0.124518,-0.727692 -0.373536,-0.95459 -0.243495,-0.226878 -0.572759,-0.340322 -0.987793,-0.340332 -0.437178,10e-6 -0.857751,0.10792 -1.2617183,0.323731 C 9.3422244,12.379541 8.918885,12.68667 8.4761791,13.085098 L 7.0816479,11.433243 C 7.3306704,11.206366 7.5907613,10.990545 7.8619213,10.785782 8.1330785,10.575507 8.4319063,10.390123 8.7584057,10.22963 9.0849004,10.06916 9.4446006,9.9418812 9.8375072,9.8477936 10.230407,9.7481965 10.670348,9.6983918 11.157331,9.6983795 c 0.58105,1.23e-5 1.101232,0.080253 1.560547,0.2407227 0.464837,0.1604938 0.860508,0.3901488 1.187012,0.6889648 0.32649,0.293305 0.575513,0.650239 0.74707,1.070801 0.177075,0.420583 0.265617,0.89
 3727 0.265625,1.419433 -8e-6,0.47592 -0.08302,0.932463 -0.249023,1.369629 -0.166024,0.431648 -0.392912,0.857754 -0.680664,1.278321 -0.287768,0.415044 -0.622566,0.830083 -1.004395,1.245117 -0.376308,0.40951 -0.780279,0.827315 -1.211914,1.253418 l -1.460937,1.469238 0,0.116211 4.947265,0 0,2.158203"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 16.428328,16.853653 c -1e-6,-0.581049 0.03044,-1.159336 0.09131,-1.734863 0.06641,-0.575514 0.17985,-1.126132 0.340332,-1.651856 0.166015,-0.531241 0.387369,-1.023753 0.664063,-1.477539 0.282224,-0.453765 0.636391,-0.846669 1.0625,-1.178711 0.431637,-0.337553 0.946285,-0.600411 1.543945,-0.788574 0.603185,-0.1936727 1.305984,-0.2905151 2.108398,-0.2905274 0.116205,1.23e-5 0.243483,0.00278 0.381836,0.0083 0.13834,0.00555 0.276686,0.013847 0.415039,0.024902 0.143873,0.00555 0.282219,0.016614 0.415039,0.033203 0.132805,0.016614 0.251783,0.035982 0.356934,0.058105 l 0,2.0502924 c -0.210294,-0.04979 -0.434415,-0.08853 -0.672363,-0.116211 -0.232429,-0.03319 -0.467618,-0.04979 -0.705567,-0.0498 -0.747076,1e-5 -1.361333,0.09408 -1.842773,0.282226 -0.48145,0.182627 -0.863285,0.439951 -1.145508,0.771973 -0.28223,0.33204 -0.484215,0.730477 -0.605957,1.195312 -0.116214,0.464852 -0.188154,0.9795 -0.21582,1.543946 l 0.09961,0 c 0.110674,-0.199212 0.243487,-0.384596 0.398438,-0
 .556153 0.160478,-0.177076 0.345862,-0.32649 0.556152,-0.448242 0.210282,-0.127271 0.445471,-0.22688 0.705566,-0.298828 0.265621,-0.07193 0.561681,-0.107902 0.888184,-0.10791 0.52571,8e-6 0.998854,0.08578 1.419434,0.257324 0.420565,0.171557 0.774732,0.42058 1.0625,0.74707 0.293286,0.326504 0.517407,0.727708 0.672363,1.203614 0.154939,0.475916 0.232413,1.021 0.232422,1.635254 -9e-6,0.658532 -0.09408,1.247887 -0.282227,1.768066 -0.182625,0.520184 -0.445483,0.962892 -0.788574,1.328125 -0.343106,0.359701 -0.758145,0.636394 -1.245117,0.830078 -0.486985,0.188151 -1.034836,0.282227 -1.643555,0.282227 -0.59766,0 -1.156579,-0.105144 -1.676758,-0.31543 -0.520185,-0.21582 -0.97396,-0.542317 -1.361328,-0.979492 -0.381837,-0.437173 -0.683432,-0.987791 -0.904785,-1.651856 -0.215821,-0.669593 -0.323731,-1.460933 -0.32373,-2.374023 m 4.216796,3.270508 c 0.226883,2e-6 0.431636,-0.0415 0.614258,-0.124512 0.188146,-0.08854 0.348627,-0.218585 0.481446,-0.390137 0.13834,-0.17708 0.243483,-0.3984
 34 0.315429,-0.664062 0.07747,-0.265622 0.116205,-0.581051 0.116211,-0.946289 -6e-6,-0.592118 -0.124518,-1.056961 -0.373535,-1.394531 -0.243495,-0.343094 -0.61703,-0.514643 -1.120605,-0.514649 -0.254562,6e-6 -0.486984,0.04981 -0.697266,0.149414 -0.21029,0.09962 -0.390141,0.229661 -0.539551,0.390137 -0.149417,0.160487 -0.265628,0.340337 -0.348633,0.539551 -0.07748,0.199223 -0.116214,0.401209 -0.116211,0.605957 -3e-6,0.28223 0.0332,0.564456 0.09961,0.846679 0.07194,0.276696 0.17708,0.528486 0.315429,0.755371 0.143877,0.221357 0.318193,0.401207 0.52295,0.539551 0.210282,0.138349 0.453771,0.207522 0.730468,0.20752"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/27.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/27.png
new file mode 100644
index 0000000..ecf058e
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/27.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/27.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/27.svg
new file mode 100644
index 0000000..c8d6440
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/27.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 15.257917,22.008438 -8.143066,0 0,-1.784668 2.8554687,-3.07959 c 0.3596963,-0.387364 0.6861933,-0.744297 0.9794923,-1.0708 0.293289,-0.326492 0.54508,-0.644688 0.755371,-0.95459 0.210281,-0.309889 0.37353,-0.625318 0.489746,-0.946289 0.116205,-0.320956 0.174311,-0.666821 0.174317,-1.037598 -6e-6,-0.409496 -0.124518,-0.727692 -0.373536,-0.95459 -0.243495,-0.226878 -0.572759,-0.340322 -0.987793,-0.340332 -0.437178,10e-6 -0.857751,0.10792 -1.2617183,0.323731 C 9.3422244,12.379541 8.918885,12.68667 8.4761791,13.085098 L 7.0816479,11.433243 C 7.3306704,11.206366 7.5907613,10.990545 7.8619213,10.785782 8.1330785,10.575507 8.4319063,10.390123 8.7584057,10.22963 9.0849004,10.06916 9.4446006,9.9418812 9.8375072,9.8477936 10.230407,9.7481965 10.670348,9.6983918 11.157331,9.6983795 c 0.58105,1.23e-5 1.101232,0.080253 1.560547,0.2407227 0.464837,0.1604938 0.860508,0.3901488 1.187012,0.6889648 0.32649,0.293305 0.575513,0.650239 0.74707,1.070801 0.177075,0.420583 0.265617,0.89
 3727 0.265625,1.419433 -8e-6,0.47592 -0.08302,0.932463 -0.249023,1.369629 -0.166024,0.431648 -0.392912,0.857754 -0.680664,1.278321 -0.287768,0.415044 -0.622566,0.830083 -1.004395,1.245117 -0.376308,0.40951 -0.780279,0.827315 -1.211914,1.253418 l -1.460937,1.469238 0,0.116211 4.947265,0 0,2.158203"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 17.51573,22.008438 4.316406,-9.960937 -5.578125,0 0,-2.1582035 8.367188,0 0,1.6103515 -4.424317,10.508789 -2.681152,0"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/28.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/28.png
new file mode 100644
index 0000000..e64efb2
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/28.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/28.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/28.svg
new file mode 100644
index 0000000..5acce93
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/28.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 15.257917,22.008438 -8.143066,0 0,-1.784668 2.8554687,-3.07959 c 0.3596963,-0.387364 0.6861933,-0.744297 0.9794923,-1.0708 0.293289,-0.326492 0.54508,-0.644688 0.755371,-0.95459 0.210281,-0.309889 0.37353,-0.625318 0.489746,-0.946289 0.116205,-0.320956 0.174311,-0.666821 0.174317,-1.037598 -6e-6,-0.409496 -0.124518,-0.727692 -0.373536,-0.95459 -0.243495,-0.226878 -0.572759,-0.340322 -0.987793,-0.340332 -0.437178,10e-6 -0.857751,0.10792 -1.2617183,0.323731 C 9.3422244,12.379541 8.918885,12.68667 8.4761791,13.085098 L 7.0816479,11.433243 C 7.3306704,11.206366 7.5907613,10.990545 7.8619213,10.785782 8.1330785,10.575507 8.4319063,10.390123 8.7584057,10.22963 9.0849004,10.06916 9.4446006,9.9418812 9.8375072,9.8477936 10.230407,9.7481965 10.670348,9.6983918 11.157331,9.6983795 c 0.58105,1.23e-5 1.101232,0.080253 1.560547,0.2407227 0.464837,0.1604938 0.860508,0.3901488 1.187012,0.6889648 0.32649,0.293305 0.575513,0.650239 0.74707,1.070801 0.177075,0.420583 0.265617,0.89
 3727 0.265625,1.419433 -8e-6,0.47592 -0.08302,0.932463 -0.249023,1.369629 -0.166024,0.431648 -0.392912,0.857754 -0.680664,1.278321 -0.287768,0.415044 -0.622566,0.830083 -1.004395,1.245117 -0.376308,0.40951 -0.780279,0.827315 -1.211914,1.253418 l -1.460937,1.469238 0,0.116211 4.947265,0 0,2.158203"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 20.48741,9.7149811 c 0.503575,1.23e-5 0.979486,0.060885 1.427734,0.1826172 0.448236,0.1217567 0.841139,0.3043737 1.178711,0.5478517 0.337557,0.243501 0.605949,0.547862 0.805176,0.913086 0.19921,0.365244 0.298819,0.794118 0.298828,1.286621 -9e-6,0.365243 -0.05535,0.697274 -0.166016,0.996094 -0.110685,0.293302 -0.262866,0.561694 -0.456543,0.805175 -0.193692,0.237963 -0.423347,0.451017 -0.688965,0.639161 -0.265631,0.188157 -0.553392,0.359707 -0.863281,0.514648 0.320957,0.171556 0.63362,0.362473 0.937988,0.572754 0.309889,0.210292 0.583814,0.448247 0.821778,0.713867 0.237947,0.260096 0.428865,0.55339 0.572754,0.879883 0.143871,0.326501 0.215811,0.691735 0.21582,1.095703 -9e-6,0.503583 -0.09962,0.960126 -0.298828,1.369629 -0.199227,0.409506 -0.478687,0.758139 -0.838379,1.045898 -0.359708,0.287761 -0.791348,0.509115 -1.294922,0.664063 -0.498053,0.154948 -1.048671,0.232422 -1.651855,0.232422 -0.652999,0 -1.234053,-0.07471 -1.743164,-0.224121 -0.509117,-0.149414 -0.93799
 1,-0.362467 -1.286622,-0.639161 -0.348634,-0.276691 -0.614258,-0.617023 -0.796875,-1.020996 -0.177084,-0.403969 -0.265625,-0.857744 -0.265625,-1.361328 0,-0.415035 0.06087,-0.78857 0.182618,-1.120605 0.121744,-0.332027 0.287759,-0.630855 0.498046,-0.896485 0.210285,-0.265619 0.456542,-0.500808 0.73877,-0.705566 0.282224,-0.204747 0.583819,-0.384597 0.904785,-0.539551 -0.271161,-0.171543 -0.525718,-0.356927 -0.763672,-0.556152 -0.237957,-0.204746 -0.445477,-0.428866 -0.622558,-0.672363 -0.171551,-0.249016 -0.309897,-0.522942 -0.415039,-0.821778 -0.09961,-0.298819 -0.149415,-0.628083 -0.149414,-0.987793 -1e-6,-0.481435 0.09961,-0.902008 0.298828,-1.261718 0.204751,-0.365224 0.478676,-0.669585 0.821777,-0.913086 0.343097,-0.249012 0.738767,-0.434396 1.187012,-0.5561527 0.448238,-0.1217326 0.918615,-0.1826049 1.411133,-0.1826172 m -1.718262,9.0644529 c -3e-6,0.221357 0.03597,0.42611 0.10791,0.614258 0.07194,0.18262 0.17708,0.340334 0.31543,0.473145 0.143876,0.132814 0.32096,0.23
 7957 0.53125,0.315429 0.210282,0.07194 0.453771,0.107912 0.730468,0.10791 0.58105,2e-6 1.015457,-0.135577 1.303223,-0.406738 0.287754,-0.27669 0.431634,-0.639157 0.431641,-1.087402 -7e-6,-0.232419 -0.04981,-0.439938 -0.149414,-0.622559 -0.09408,-0.188147 -0.218594,-0.359696 -0.373535,-0.514648 -0.14942,-0.160478 -0.32097,-0.307125 -0.514649,-0.439942 -0.19369,-0.132807 -0.387375,-0.260086 -0.581055,-0.381836 L 20.3878,16.72084 c -0.243494,0.12175 -0.464848,0.254563 -0.664062,0.398438 -0.199223,0.138351 -0.370772,0.293299 -0.514649,0.464844 -0.138349,0.16602 -0.246259,0.348637 -0.32373,0.547851 -0.07748,0.199223 -0.116214,0.415043 -0.116211,0.647461 m 1.70166,-7.188476 c -0.182622,10e-6 -0.354171,0.02768 -0.514648,0.08301 -0.154952,0.05535 -0.290532,0.13559 -0.406739,0.240723 -0.11068,0.105153 -0.199222,0.235199 -0.265625,0.390137 -0.06641,0.154957 -0.09961,0.329274 -0.09961,0.522949 -3e-6,0.232431 0.0332,0.434416 0.09961,0.605957 0.07194,0.166024 0.166012,0.315438 0.282227,0
 .448242 0.121741,0.127287 0.260087,0.243498 0.415039,0.348633 0.160477,0.09962 0.32926,0.199226 0.506348,0.298828 0.171544,-0.08853 0.334793,-0.185376 0.489746,-0.290527 0.154942,-0.105135 0.290522,-0.224113 0.406738,-0.356934 0.121739,-0.138338 0.218581,-0.293286 0.290527,-0.464843 0.07193,-0.171541 0.107904,-0.367993 0.10791,-0.589356 -6e-6,-0.193675 -0.03321,-0.367992 -0.09961,-0.522949 -0.06641,-0.154938 -0.15772,-0.284984 -0.273926,-0.390137 -0.116216,-0.105133 -0.254562,-0.185374 -0.415039,-0.240723 -0.160487,-0.05533 -0.334803,-0.083 -0.522949,-0.08301"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/29.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/29.png
new file mode 100644
index 0000000..dbbca1b
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/29.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/29.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/29.svg
new file mode 100644
index 0000000..507dd44
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/29.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 15.257917,22.008438 -8.143066,0 0,-1.784668 2.8554687,-3.07959 c 0.3596963,-0.387364 0.6861933,-0.744297 0.9794923,-1.0708 0.293289,-0.326492 0.54508,-0.644688 0.755371,-0.95459 0.210281,-0.309889 0.37353,-0.625318 0.489746,-0.946289 0.116205,-0.320956 0.174311,-0.666821 0.174317,-1.037598 -6e-6,-0.409496 -0.124518,-0.727692 -0.373536,-0.95459 -0.243495,-0.226878 -0.572759,-0.340322 -0.987793,-0.340332 -0.437178,10e-6 -0.857751,0.10792 -1.2617183,0.323731 C 9.3422244,12.379541 8.918885,12.68667 8.4761791,13.085098 L 7.0816479,11.433243 C 7.3306704,11.206366 7.5907613,10.990545 7.8619213,10.785782 8.1330785,10.575507 8.4319063,10.390123 8.7584057,10.22963 9.0849004,10.06916 9.4446006,9.9418812 9.8375072,9.8477936 10.230407,9.7481965 10.670348,9.6983918 11.157331,9.6983795 c 0.58105,1.23e-5 1.101232,0.080253 1.560547,0.2407227 0.464837,0.1604938 0.860508,0.3901488 1.187012,0.6889648 0.32649,0.293305 0.575513,0.650239 0.74707,1.070801 0.177075,0.420583 0.265617,0.89
 3727 0.265625,1.419433 -8e-6,0.47592 -0.08302,0.932463 -0.249023,1.369629 -0.166024,0.431648 -0.392912,0.857754 -0.680664,1.278321 -0.287768,0.415044 -0.622566,0.830083 -1.004395,1.245117 -0.376308,0.40951 -0.780279,0.827315 -1.211914,1.253418 l -1.460937,1.469238 0,0.116211 4.947265,0 0,2.158203"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 24.554792,15.052383 c -8e-6,0.581061 -0.03321,1.162116 -0.09961,1.743164 -0.06088,0.575526 -0.174325,1.126144 -0.340332,1.651856 -0.16049,0.525719 -0.381844,1.018232 -0.664063,1.477539 -0.2767,0.453778 -0.630866,0.846681 -1.0625,1.178711 -0.426112,0.332032 -0.94076,0.59489 -1.543945,0.788574 -0.597661,0.188151 -1.300459,0.282227 -2.108398,0.282227 -0.116214,0 -0.243493,-0.0028 -0.381836,-0.0083 -0.138349,-0.0055 -0.279462,-0.01384 -0.42334,-0.0249 -0.138348,-0.0055 -0.273928,-0.0166 -0.406738,-0.0332 -0.132814,-0.01107 -0.249025,-0.02767 -0.348633,-0.0498 l 0,-2.058594 c 0.204751,0.05534 0.423338,0.09961 0.655762,0.132813 0.237953,0.02767 0.478675,0.04151 0.722168,0.0415 0.747066,2e-6 1.361324,-0.09131 1.842773,-0.273925 0.48144,-0.188149 0.863276,-0.44824 1.145508,-0.780274 0.28222,-0.337562 0.481439,-0.738766 0.597656,-1.203613 0.121738,-0.464839 0.196445,-0.97672 0.224121,-1.535645 l -0.10791,0 c -0.110683,0.199225 -0.243496,0.384609 -0.398438,0.556153 -0.1549
 53,0.171554 -0.33757,0.320968 -0.547851,0.448242 -0.210292,0.127283 -0.448247,0.226892 -0.713867,0.298828 -0.26563,0.07194 -0.561691,0.107914 -0.888184,0.10791 -0.525719,4e-6 -0.998863,-0.08577 -1.419433,-0.257324 -0.420575,-0.171545 -0.777509,-0.420568 -1.070801,-0.74707 -0.287762,-0.326492 -0.509116,-0.727696 -0.664063,-1.203614 -0.154948,-0.475904 -0.232422,-1.020988 -0.232422,-1.635253 0,-0.65852 0.09131,-1.247875 0.273926,-1.768067 0.18815,-0.520172 0.453775,-0.960113 0.796875,-1.319824 0.343097,-0.365223 0.758136,-0.644682 1.245117,-0.838379 0.49251,-0.1936727 1.043128,-0.2905151 1.651856,-0.2905274 0.597651,1.23e-5 1.15657,0.1079224 1.676758,0.3237304 0.520175,0.210298 0.971184,0.534028 1.353027,0.971192 0.381828,0.437185 0.683423,0.990569 0.904785,1.660156 0.221346,0.669605 0.332023,1.458178 0.332031,2.365722 m -4.216796,-3.262207 c -0.226893,1.1e-5 -0.434412,0.04151 -0.622559,0.124512 -0.188155,0.08302 -0.351403,0.213063 -0.489746,0.390137 -0.132816,0.171559 -0.2379
 59,0.392913 -0.31543,0.664062 -0.07194,0.265634 -0.107913,0.581063 -0.10791,0.946289 -3e-6,0.586596 0.124509,1.05144 0.373535,1.394532 0.24902,0.343105 0.625322,0.514654 1.128906,0.514648 0.254553,6e-6 0.486975,-0.0498 0.697266,-0.149414 0.210281,-0.0996 0.390131,-0.229648 0.539551,-0.390137 0.149408,-0.160475 0.262852,-0.340325 0.340332,-0.53955 0.083,-0.199212 0.124505,-0.401197 0.124512,-0.605958 -7e-6,-0.282218 -0.03598,-0.561677 -0.107911,-0.838378 -0.06641,-0.282218 -0.171555,-0.534008 -0.315429,-0.755372 -0.138352,-0.226878 -0.312669,-0.409495 -0.52295,-0.547851 -0.204757,-0.138336 -0.44548,-0.207509 -0.722167,-0.20752"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/3.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/3.png
new file mode 100644
index 0000000..4febe43
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/3.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/3.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/3.svg
new file mode 100644
index 0000000..5e87e1f
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/3.svg
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 19.422316,12.587051 c -9e-6,0.420582 -0.06918,0.799651 -0.20752,1.137207 -0.13282,0.33204 -0.318204,0.625334 -0.556152,0.879883 -0.23243,0.249031 -0.509122,0.459317 -0.830078,0.63086 -0.315437,0.166022 -0.658535,0.2933 -1.029297,0.381836 l 0,0.0498 c 0.979485,0.121751 1.721021,0.420579 2.224609,0.896485 0.503572,0.470382 0.755362,1.106775 0.755371,1.909179 -9e-6,0.531253 -0.09685,1.023766 -0.290527,1.477539 -0.188159,0.448244 -0.481453,0.83838 -0.879883,1.170411 -0.392911,0.332031 -0.890957,0.592122 -1.494141,0.780273 -0.597661,0.182617 -1.303227,0.273926 -2.116699,0.273926 -0.652998,0 -1.267255,-0.05534 -1.842773,-0.166016 -0.575523,-0.105143 -1.112306,-0.268392 -1.610352,-0.489746 l 0,-2.183105 c 0.249023,0.132815 0.511881,0.249025 0.788574,0.348632 0.276692,0.09961 0.553384,0.185387 0.830079,0.257325 0.27669,0.06641 0.547848,0.116212 0.813476,0.149414 0.271156,0.0332 0.525713,0.04981 0.763672,0.0498 0.475907,2e-6 0.871577,-0.04427 1.187012,-0.132812 0.315424,-
 0.08854 0.567214,-0.213051 0.755371,-0.373535 0.188145,-0.16048 0.320957,-0.351397 0.398437,-0.572754 0.083,-0.226885 0.124506,-0.473141 0.124512,-0.73877 -6e-6,-0.249019 -0.05258,-0.47314 -0.157715,-0.672363 -0.09962,-0.204748 -0.265631,-0.376297 -0.498047,-0.514648 -0.226893,-0.143876 -0.525721,-0.254553 -0.896484,-0.332032 -0.370773,-0.07747 -0.827315,-0.116205 -1.369629,-0.116211 l -0.863281,0 0,-1.801269 0.846679,0 c 0.509111,7e-6 0.932451,-0.04426 1.27002,-0.132813 0.33756,-0.09407 0.605952,-0.218579 0.805176,-0.373535 0.204747,-0.160474 0.348627,-0.345858 0.43164,-0.556152 0.083,-0.210278 0.124506,-0.434399 0.124512,-0.672363 -6e-6,-0.431632 -0.135585,-0.769197 -0.406738,-1.012696 -0.26563,-0.243479 -0.68897,-0.365224 -1.27002,-0.365234 -0.265629,10e-6 -0.514652,0.02768 -0.74707,0.08301 -0.226891,0.04981 -0.439944,0.116221 -0.63916,0.199218 -0.193688,0.07748 -0.373538,0.166026 -0.539551,0.265625 -0.160484,0.09409 -0.307131,0.188161 -0.439941,0.282227 l -1.294922,-1.70
 9961 c 0.232421,-0.171538 0.484211,-0.329253 0.755371,-0.473145 0.276691,-0.143868 0.575519,-0.26838 0.896484,-0.373535 0.320961,-0.1106647 0.666827,-0.1964393 1.037598,-0.2573239 0.370765,-0.06086 0.766435,-0.091296 1.187012,-0.091309 0.597651,1.23e-5 1.139968,0.066419 1.626953,0.1992188 0.492506,0.1272911 0.913079,0.3154421 1.261718,0.5644531 0.348626,0.243501 0.617017,0.545096 0.805176,0.904786 0.193677,0.354177 0.290519,0.760914 0.290528,1.220214"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/30.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/30.png
new file mode 100644
index 0000000..f4ffb14
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/30.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/30.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/30.svg
new file mode 100644
index 0000000..434e663
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/30.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 14.784773,12.587051 c -8e-6,0.420582 -0.06918,0.799651 -0.20752,1.137207 -0.13282,0.33204 -0.318204,0.625334 -0.556152,0.879883 -0.232429,0.249031 -0.509122,0.459317 -0.830078,0.63086 -0.315436,0.166022 -0.658535,0.2933 -1.029297,0.381836 l 0,0.0498 c 0.979485,0.121751 1.721021,0.420579 2.224609,0.896485 0.503573,0.470382 0.755363,1.106775 0.755371,1.909179 -8e-6,0.531253 -0.09685,1.023766 -0.290527,1.477539 -0.188159,0.448244 -0.481453,0.83838 -0.879883,1.170411 -0.39291,0.332031 -0.890957,0.592122 -1.49414,0.780273 -0.597662,0.182617 -1.303228,0.273926 -2.1167,0.273926 -0.6529976,0 -1.2672548,-0.05534 -1.842773,-0.166016 C 7.9421607,21.903295 7.4053774,21.740046 6.9073315,21.518692 l 0,-2.183105 c 0.2490227,0.132815 0.5118805,0.249025 0.7885742,0.348632 0.2766912,0.09961 0.5533836,0.185387 0.8300781,0.257325 0.2766904,0.06641 0.5478489,0.116212 0.8134766,0.149414 0.2711557,0.0332 0.5257127,0.04981 0.7636716,0.0498 0.475908,2e-6 0.871578,-0.04427 1.187012,-0.132
 812 0.315424,-0.08854 0.567215,-0.213051 0.755371,-0.373535 0.188145,-0.16048 0.320958,-0.351397 0.398438,-0.572754 0.083,-0.226885 0.124505,-0.473141 0.124511,-0.73877 -6e-6,-0.249019 -0.05258,-0.47314 -0.157715,-0.672363 -0.09962,-0.204748 -0.26563,-0.376297 -0.498046,-0.514648 C 11.685809,16.992 11.386981,16.881323 11.016218,16.803844 10.645446,16.726374 10.188903,16.687639 9.6465893,16.687633 l -0.8632813,0 0,-1.801269 0.8466797,0 c 0.5091113,7e-6 0.9324503,-0.04426 1.2700193,-0.132813 0.337561,-0.09407 0.605952,-0.218579 0.805176,-0.373535 0.204747,-0.160474 0.348627,-0.345858 0.431641,-0.556152 0.083,-0.210278 0.124506,-0.434399 0.124511,-0.672363 -5e-6,-0.431632 -0.135585,-0.769197 -0.406738,-1.012696 -0.26563,-0.243479 -0.688969,-0.365224 -1.270019,-0.365234 -0.265629,10e-6 -0.514653,0.02768 -0.7470708,0.08301 -0.2268911,0.04981 -0.4399443,0.116221 -0.6391601,0.199218 -0.1936875,0.07748 -0.3735376,0.166026 -0.5395508,0.265625 -0.1604838,0.09409 -0.3071308,0.188161 -0
 .4399414,0.282227 L 6.923933,10.893692 c 0.2324212,-0.171538 0.4842113,-0.329253 0.7553711,-0.473145 0.2766912,-0.143868 0.575519,-0.26838 0.8964844,-0.373535 0.3209611,-0.1106647 0.6668266,-0.1964393 1.0375977,-0.2573239 0.3707646,-0.06086 0.7664348,-0.091296 1.1870118,-0.091309 0.597651,1.23e-5 1.139968,0.066419 1.626953,0.1992188 0.492507,0.1272911 0.913079,0.3154421 1.261719,0.5644531 0.348625,0.243501 0.617017,0.545096 0.805176,0.904786 0.193676,0.354177 0.290519,0.760914 0.290527,1.220214"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 24.6378,15.940567 c -9e-6,0.979497 -0.07748,1.853845 -0.232422,2.623047 -0.149422,0.769208 -0.392912,1.422202 -0.730468,1.958984 -0.332039,0.536785 -0.763679,0.94629 -1.294922,1.228516 -0.525722,0.282226 -1.162115,0.42334 -1.90918,0.42334 -0.702803,0 -1.314294,-0.141114 -1.834473,-0.42334 -0.520184,-0.282226 -0.951824,-0.691731 -1.294922,-1.228516 -0.3431,-0.536782 -0.600424,-1.189776 -0.771972,-1.958984 -0.166016,-0.769202 -0.249024,-1.64355 -0.249024,-2.623047 0,-0.979485 0.07471,-1.8566 0.224121,-2.631348 0.154948,-0.77473 0.398437,-1.430491 0.730469,-1.967285 0.33203,-0.536772 0.760903,-0.946277 1.286621,-1.228515 0.525713,-0.2877487 1.162106,-0.4316287 1.90918,-0.431641 0.69726,1.23e-5 1.305984,0.1411254 1.826172,0.42334 0.520175,0.282238 0.954582,0.691743 1.303223,1.228515 0.348624,0.536794 0.608715,1.192555 0.780273,1.967286 0.171541,0.774747 0.257315,1.654629 0.257324,2.639648 m -5.760742,0 c -3e-6,1.383468 0.118975,2.423832 0.356934,3.121094 0.237952,0.6
 97268 0.650223,1.0459 1.236816,1.045898 0.575516,2e-6 0.987787,-0.345863 1.236816,-1.037597 0.254552,-0.691729 0.38183,-1.734859 0.381836,-3.129395 -6e-6,-1.38899 -0.127284,-2.43212 -0.381836,-3.129395 -0.249029,-0.702789 -0.6613,-1.054188 -1.236816,-1.054199 -0.293299,1.1e-5 -0.542322,0.08855 -0.74707,0.265625 -0.199223,0.177093 -0.362471,0.439951 -0.489746,0.788574 -0.127282,0.348642 -0.218591,0.785816 -0.273926,1.311524 -0.05534,0.52019 -0.08301,1.126146 -0.08301,1.817871"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/31.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/31.png
new file mode 100644
index 0000000..0b29e87
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/31.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/31.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/31.svg
new file mode 100644
index 0000000..08c3f2d
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/31.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 14.784773,12.587051 c -8e-6,0.420582 -0.06918,0.799651 -0.20752,1.137207 -0.13282,0.33204 -0.318204,0.625334 -0.556152,0.879883 -0.232429,0.249031 -0.509122,0.459317 -0.830078,0.63086 -0.315436,0.166022 -0.658535,0.2933 -1.029297,0.381836 l 0,0.0498 c 0.979485,0.121751 1.721021,0.420579 2.224609,0.896485 0.503573,0.470382 0.755363,1.106775 0.755371,1.909179 -8e-6,0.531253 -0.09685,1.023766 -0.290527,1.477539 -0.188159,0.448244 -0.481453,0.83838 -0.879883,1.170411 -0.39291,0.332031 -0.890957,0.592122 -1.49414,0.780273 -0.597662,0.182617 -1.303228,0.273926 -2.1167,0.273926 -0.6529976,0 -1.2672548,-0.05534 -1.842773,-0.166016 C 7.9421607,21.903295 7.4053774,21.740046 6.9073315,21.518692 l 0,-2.183105 c 0.2490227,0.132815 0.5118805,0.249025 0.7885742,0.348632 0.2766912,0.09961 0.5533836,0.185387 0.8300781,0.257325 0.2766904,0.06641 0.5478489,0.116212 0.8134766,0.149414 0.2711557,0.0332 0.5257127,0.04981 0.7636716,0.0498 0.475908,2e-6 0.871578,-0.04427 1.187012,-0.132
 812 0.315424,-0.08854 0.567215,-0.213051 0.755371,-0.373535 0.188145,-0.16048 0.320958,-0.351397 0.398438,-0.572754 0.083,-0.226885 0.124505,-0.473141 0.124511,-0.73877 -6e-6,-0.249019 -0.05258,-0.47314 -0.157715,-0.672363 -0.09962,-0.204748 -0.26563,-0.376297 -0.498046,-0.514648 C 11.685809,16.992 11.386981,16.881323 11.016218,16.803844 10.645446,16.726374 10.188903,16.687639 9.6465893,16.687633 l -0.8632813,0 0,-1.801269 0.8466797,0 c 0.5091113,7e-6 0.9324503,-0.04426 1.2700193,-0.132813 0.337561,-0.09407 0.605952,-0.218579 0.805176,-0.373535 0.204747,-0.160474 0.348627,-0.345858 0.431641,-0.556152 0.083,-0.210278 0.124506,-0.434399 0.124511,-0.672363 -5e-6,-0.431632 -0.135585,-0.769197 -0.406738,-1.012696 -0.26563,-0.243479 -0.688969,-0.365224 -1.270019,-0.365234 -0.265629,10e-6 -0.514653,0.02768 -0.7470708,0.08301 -0.2268911,0.04981 -0.4399443,0.116221 -0.6391601,0.199218 -0.1936875,0.07748 -0.3735376,0.166026 -0.5395508,0.265625 -0.1604838,0.09409 -0.3071308,0.188161 -0
 .4399414,0.282227 L 6.923933,10.893692 c 0.2324212,-0.171538 0.4842113,-0.329253 0.7553711,-0.473145 0.2766912,-0.143868 0.575519,-0.26838 0.8964844,-0.373535 0.3209611,-0.1106647 0.6668266,-0.1964393 1.0375977,-0.2573239 0.3707646,-0.06086 0.7664348,-0.091296 1.1870118,-0.091309 0.597651,1.23e-5 1.139968,0.066419 1.626953,0.1992188 0.492507,0.1272911 0.913079,0.3154421 1.261719,0.5644531 0.348625,0.243501 0.617017,0.545096 0.805176,0.904786 0.193676,0.354177 0.290519,0.760914 0.290527,1.220214"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 22.579206,22.008438 -2.564941,0 0,-7.022461 c -4e-6,-0.143873 -4e-6,-0.315422 0,-0.514648 0.0055,-0.204745 0.01106,-0.415031 0.0166,-0.63086 0.01106,-0.221345 0.01936,-0.442699 0.0249,-0.664062 0.01106,-0.221345 0.01936,-0.423331 0.0249,-0.605957 -0.02767,0.03321 -0.07471,0.08302 -0.141113,0.149414 -0.06641,0.06642 -0.141117,0.141122 -0.224121,0.224121 -0.08301,0.07748 -0.168786,0.157724 -0.257324,0.240723 -0.08855,0.08302 -0.17432,0.157723 -0.257325,0.224121 l -1.394531,1.120605 -1.245117,-1.543945 3.909668,-3.1127931 2.108398,0 0,12.1357421"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/32.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/32.png
new file mode 100644
index 0000000..a4740a3
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/32.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/32.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/32.svg
new file mode 100644
index 0000000..aa099c3
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/32.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 14.784773,12.587051 c -8e-6,0.420582 -0.06918,0.799651 -0.20752,1.137207 -0.13282,0.33204 -0.318204,0.625334 -0.556152,0.879883 -0.232429,0.249031 -0.509122,0.459317 -0.830078,0.63086 -0.315436,0.166022 -0.658535,0.2933 -1.029297,0.381836 l 0,0.0498 c 0.979485,0.121751 1.721021,0.420579 2.224609,0.896485 0.503573,0.470382 0.755363,1.106775 0.755371,1.909179 -8e-6,0.531253 -0.09685,1.023766 -0.290527,1.477539 -0.188159,0.448244 -0.481453,0.83838 -0.879883,1.170411 -0.39291,0.332031 -0.890957,0.592122 -1.49414,0.780273 -0.597662,0.182617 -1.303228,0.273926 -2.1167,0.273926 -0.6529976,0 -1.2672548,-0.05534 -1.842773,-0.166016 C 7.9421607,21.903295 7.4053774,21.740046 6.9073315,21.518692 l 0,-2.183105 c 0.2490227,0.132815 0.5118805,0.249025 0.7885742,0.348632 0.2766912,0.09961 0.5533836,0.185387 0.8300781,0.257325 0.2766904,0.06641 0.5478489,0.116212 0.8134766,0.149414 0.2711557,0.0332 0.5257127,0.04981 0.7636716,0.0498 0.475908,2e-6 0.871578,-0.04427 1.187012,-0.132
 812 0.315424,-0.08854 0.567215,-0.213051 0.755371,-0.373535 0.188145,-0.16048 0.320958,-0.351397 0.398438,-0.572754 0.083,-0.226885 0.124505,-0.473141 0.124511,-0.73877 -6e-6,-0.249019 -0.05258,-0.47314 -0.157715,-0.672363 -0.09962,-0.204748 -0.26563,-0.376297 -0.498046,-0.514648 C 11.685809,16.992 11.386981,16.881323 11.016218,16.803844 10.645446,16.726374 10.188903,16.687639 9.6465893,16.687633 l -0.8632813,0 0,-1.801269 0.8466797,0 c 0.5091113,7e-6 0.9324503,-0.04426 1.2700193,-0.132813 0.337561,-0.09407 0.605952,-0.218579 0.805176,-0.373535 0.204747,-0.160474 0.348627,-0.345858 0.431641,-0.556152 0.083,-0.210278 0.124506,-0.434399 0.124511,-0.672363 -5e-6,-0.431632 -0.135585,-0.769197 -0.406738,-1.012696 -0.26563,-0.243479 -0.688969,-0.365224 -1.270019,-0.365234 -0.265629,10e-6 -0.514653,0.02768 -0.7470708,0.08301 -0.2268911,0.04981 -0.4399443,0.116221 -0.6391601,0.199218 -0.1936875,0.07748 -0.3735376,0.166026 -0.5395508,0.265625 -0.1604838,0.09409 -0.3071308,0.188161 -0
 .4399414,0.282227 L 6.923933,10.893692 c 0.2324212,-0.171538 0.4842113,-0.329253 0.7553711,-0.473145 0.2766912,-0.143868 0.575519,-0.26838 0.8964844,-0.373535 0.3209611,-0.1106647 0.6668266,-0.1964393 1.0375977,-0.2573239 0.3707646,-0.06086 0.7664348,-0.091296 1.1870118,-0.091309 0.597651,1.23e-5 1.139968,0.066419 1.626953,0.1992188 0.492507,0.1272911 0.913079,0.3154421 1.261719,0.5644531 0.348625,0.243501 0.617017,0.545096 0.805176,0.904786 0.193676,0.354177 0.290519,0.760914 0.290527,1.220214"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 24.621199,22.008438 -8.143067,0 0,-1.784668 2.855469,-3.07959 c 0.359697,-0.387364 0.686194,-0.744297 0.979492,-1.0708 0.29329,-0.326492 0.54508,-0.644688 0.755371,-0.95459 0.210281,-0.309889 0.37353,-0.625318 0.489746,-0.946289 0.116205,-0.320956 0.174311,-0.666821 0.174317,-1.037598 -6e-6,-0.409496 -0.124518,-0.727692 -0.373535,-0.95459 -0.243495,-0.226878 -0.572759,-0.340322 -0.987793,-0.340332 -0.437179,10e-6 -0.857751,0.10792 -1.261719,0.323731 -0.403974,0.215829 -0.827314,0.522958 -1.27002,0.921386 l -1.394531,-1.651855 c 0.249023,-0.226877 0.509114,-0.442698 0.780274,-0.647461 0.271157,-0.210275 0.569985,-0.395659 0.896484,-0.556152 0.326495,-0.16047 0.686195,-0.2877488 1.079101,-0.3818364 0.3929,-0.099597 0.832841,-0.1494018 1.319825,-0.1494141 0.581049,1.23e-5 1.101231,0.080253 1.560547,0.2407227 0.464837,0.1604938 0.860507,0.3901488 1.187011,0.6889648 0.32649,0.293305 0.575513,0.650239 0.747071,1.070801 0.177075,0.420583 0.265616,0.893727 0.265625,1.419
 433 -9e-6,0.47592 -0.08302,0.932463 -0.249024,1.369629 -0.166024,0.431648 -0.392911,0.857754 -0.680664,1.278321 -0.287768,0.415044 -0.622565,0.830083 -1.004394,1.245117 -0.376309,0.40951 -0.78028,0.827315 -1.211914,1.253418 l -1.460938,1.469238 0,0.116211 4.947266,0 0,2.158203"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/33.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/33.png
new file mode 100644
index 0000000..f23ccea
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/33.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/33.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/33.svg
new file mode 100644
index 0000000..fce979c
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/33.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 14.784773,12.587051 c -8e-6,0.420582 -0.06918,0.799651 -0.20752,1.137207 -0.13282,0.33204 -0.318204,0.625334 -0.556152,0.879883 -0.232429,0.249031 -0.509122,0.459317 -0.830078,0.63086 -0.315436,0.166022 -0.658535,0.2933 -1.029297,0.381836 l 0,0.0498 c 0.979485,0.121751 1.721021,0.420579 2.224609,0.896485 0.503573,0.470382 0.755363,1.106775 0.755371,1.909179 -8e-6,0.531253 -0.09685,1.023766 -0.290527,1.477539 -0.188159,0.448244 -0.481453,0.83838 -0.879883,1.170411 -0.39291,0.332031 -0.890957,0.592122 -1.49414,0.780273 -0.597662,0.182617 -1.303228,0.273926 -2.1167,0.273926 -0.6529976,0 -1.2672548,-0.05534 -1.842773,-0.166016 C 7.9421607,21.903295 7.4053774,21.740046 6.9073315,21.518692 l 0,-2.183105 c 0.2490227,0.132815 0.5118805,0.249025 0.7885742,0.348632 0.2766912,0.09961 0.5533836,0.185387 0.8300781,0.257325 0.2766904,0.06641 0.5478489,0.116212 0.8134766,0.149414 0.2711557,0.0332 0.5257127,0.04981 0.7636716,0.0498 0.475908,2e-6 0.871578,-0.04427 1.187012,-0.132
 812 0.315424,-0.08854 0.567215,-0.213051 0.755371,-0.373535 0.188145,-0.16048 0.320958,-0.351397 0.398438,-0.572754 0.083,-0.226885 0.124505,-0.473141 0.124511,-0.73877 -6e-6,-0.249019 -0.05258,-0.47314 -0.157715,-0.672363 -0.09962,-0.204748 -0.26563,-0.376297 -0.498046,-0.514648 C 11.685809,16.992 11.386981,16.881323 11.016218,16.803844 10.645446,16.726374 10.188903,16.687639 9.6465893,16.687633 l -0.8632813,0 0,-1.801269 0.8466797,0 c 0.5091113,7e-6 0.9324503,-0.04426 1.2700193,-0.132813 0.337561,-0.09407 0.605952,-0.218579 0.805176,-0.373535 0.204747,-0.160474 0.348627,-0.345858 0.431641,-0.556152 0.083,-0.210278 0.124506,-0.434399 0.124511,-0.672363 -5e-6,-0.431632 -0.135585,-0.769197 -0.406738,-1.012696 -0.26563,-0.243479 -0.688969,-0.365224 -1.270019,-0.365234 -0.265629,10e-6 -0.514653,0.02768 -0.7470708,0.08301 -0.2268911,0.04981 -0.4399443,0.116221 -0.6391601,0.199218 -0.1936875,0.07748 -0.3735376,0.166026 -0.5395508,0.265625 -0.1604838,0.09409 -0.3071308,0.188161 -0
 .4399414,0.282227 L 6.923933,10.893692 c 0.2324212,-0.171538 0.4842113,-0.329253 0.7553711,-0.473145 0.2766912,-0.143868 0.575519,-0.26838 0.8964844,-0.373535 0.3209611,-0.1106647 0.6668266,-0.1964393 1.0375977,-0.2573239 0.3707646,-0.06086 0.7664348,-0.091296 1.1870118,-0.091309 0.597651,1.23e-5 1.139968,0.066419 1.626953,0.1992188 0.492507,0.1272911 0.913079,0.3154421 1.261719,0.5644531 0.348625,0.243501 0.617017,0.545096 0.805176,0.904786 0.193676,0.354177 0.290519,0.760914 0.290527,1.220214"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 24.148054,12.587051 c -8e-6,0.420582 -0.06918,0.799651 -0.207519,1.137207 -0.132821,0.33204 -0.318205,0.625334 -0.556153,0.879883 -0.232429,0.249031 -0.509121,0.459317 -0.830078,0.63086 -0.315436,0.166022 -0.658535,0.2933 -1.029297,0.381836 l 0,0.0498 c 0.979486,0.121751 1.721021,0.420579 2.22461,0.896485 0.503572,0.470382 0.755362,1.106775 0.755371,1.909179 -9e-6,0.531253 -0.09685,1.023766 -0.290528,1.477539 -0.188159,0.448244 -0.481453,0.83838 -0.879882,1.170411 -0.392911,0.332031 -0.890958,0.592122 -1.494141,0.780273 -0.597662,0.182617 -1.303227,0.273926 -2.116699,0.273926 -0.652998,0 -1.267256,-0.05534 -1.842774,-0.166016 -0.575522,-0.105143 -1.112305,-0.268392 -1.610351,-0.489746 l 0,-2.183105 c 0.249022,0.132815 0.51188,0.249025 0.788574,0.348632 0.276691,0.09961 0.553384,0.185387 0.830078,0.257325 0.27669,0.06641 0.547849,0.116212 0.813477,0.149414 0.271155,0.0332 0.525712,0.04981 0.763671,0.0498 0.475908,2e-6 0.871578,-0.04427 1.187012,-0.132812 0.315425,
 -0.08854 0.567215,-0.213051 0.755371,-0.373535 0.188146,-0.16048 0.320958,-0.351397 0.398438,-0.572754 0.083,-0.226885 0.124505,-0.473141 0.124512,-0.73877 -7e-6,-0.249019 -0.05258,-0.47314 -0.157715,-0.672363 -0.09962,-0.20474 -0.265631,-0.376289 -0.498047,-0.51464 -0.226893,-0.143876 -0.525721,-0.254553 -0.896485,-0.332032 -0.370772,-0.07747 -0.827315,-0.116205 -1.369628,-0.116211 l -0.863282,0 0,-1.801269 0.84668,0 c 0.509111,7e-6 0.93245,-0.04426 1.270019,-0.132813 0.337561,-0.09407 0.605952,-0.218579 0.805176,-0.373535 0.204747,-0.160474 0.348627,-0.345858 0.431641,-0.556152 0.083,-0.210278 0.124506,-0.434399 0.124512,-0.672363 -6e-6,-0.431632 -0.135585,-0.769197 -0.406739,-1.012696 -0.26563,-0.243479 -0.688969,-0.365224 -1.270019,-0.365234 -0.265629,1e-5 -0.514652,0.02768 -0.747071,0.08301 -0.226891,0.04981 -0.439944,0.116221 -0.63916,0.199218 -0.193687,0.07748 -0.373537,0.166026 -0.53955,0.265625 -0.160484,0.09409 -0.307131,0.188161 -0.439942,0.282227 l -1.294922,-1.7
 09961 c 0.232421,-0.171538 0.484212,-0.329253 0.755371,-0.473145 0.276692,-0.143868 0.575519,-0.26838 0.896485,-0.373535 0.320961,-0.1106647 0.666826,-0.1964393 1.037597,-0.2573239 0.370765,-0.06086 0.766435,-0.091296 1.187012,-0.091309 0.597651,1.23e-5 1.139969,0.066419 1.626953,0.1992188 0.492507,0.1272911 0.913079,0.3154421 1.261719,0.5644531 0.348625,0.243501 0.617017,0.545096 0.805176,0.904786 0.193676,0.354177 0.290519,0.760914 0.290527,1.220214"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/34.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/34.png
new file mode 100644
index 0000000..7e2ab31
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/34.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/34.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/34.svg
new file mode 100644
index 0000000..c67f8ec
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/34.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 14.784773,12.587051 c -8e-6,0.420582 -0.06918,0.799651 -0.20752,1.137207 -0.13282,0.33204 -0.318204,0.625334 -0.556152,0.879883 -0.232429,0.249031 -0.509122,0.459317 -0.830078,0.63086 -0.315436,0.166022 -0.658535,0.2933 -1.029297,0.381836 l 0,0.0498 c 0.979485,0.121751 1.721021,0.420579 2.224609,0.896485 0.503573,0.470382 0.755363,1.106775 0.755371,1.909179 -8e-6,0.531253 -0.09685,1.023766 -0.290527,1.477539 -0.188159,0.448244 -0.481453,0.83838 -0.879883,1.170411 -0.39291,0.332031 -0.890957,0.592122 -1.49414,0.780273 -0.597662,0.182617 -1.303228,0.273926 -2.1167,0.273926 -0.6529976,0 -1.2672548,-0.05534 -1.842773,-0.166016 C 7.9421607,21.903295 7.4053774,21.740046 6.9073315,21.518692 l 0,-2.183105 c 0.2490227,0.132815 0.5118805,0.249025 0.7885742,0.348632 0.2766912,0.09961 0.5533836,0.185387 0.8300781,0.257325 0.2766904,0.06641 0.5478489,0.116212 0.8134766,0.149414 0.2711557,0.0332 0.5257127,0.04981 0.7636716,0.0498 0.475908,2e-6 0.871578,-0.04427 1.187012,-0.132
 812 0.315424,-0.08854 0.567215,-0.213051 0.755371,-0.373535 0.188145,-0.16048 0.320958,-0.351397 0.398438,-0.572754 0.083,-0.226885 0.124505,-0.473141 0.124511,-0.73877 -6e-6,-0.249019 -0.05258,-0.47314 -0.157715,-0.672363 -0.09962,-0.204748 -0.26563,-0.376297 -0.498046,-0.514648 C 11.685809,16.992 11.386981,16.881323 11.016218,16.803844 10.645446,16.726374 10.188903,16.687639 9.6465893,16.687633 l -0.8632813,0 0,-1.801269 0.8466797,0 c 0.5091113,7e-6 0.9324503,-0.04426 1.2700193,-0.132813 0.337561,-0.09407 0.605952,-0.218579 0.805176,-0.373535 0.204747,-0.160474 0.348627,-0.345858 0.431641,-0.556152 0.083,-0.210278 0.124506,-0.434399 0.124511,-0.672363 -5e-6,-0.431632 -0.135585,-0.769197 -0.406738,-1.012696 -0.26563,-0.243479 -0.688969,-0.365224 -1.270019,-0.365234 -0.265629,10e-6 -0.514653,0.02768 -0.7470708,0.08301 -0.2268911,0.04981 -0.4399443,0.116221 -0.6391601,0.199218 -0.1936875,0.07748 -0.3735376,0.166026 -0.5395508,0.265625 -0.1604838,0.09409 -0.3071308,0.188161 -0
 .4399414,0.282227 L 6.923933,10.893692 c 0.2324212,-0.171538 0.4842113,-0.329253 0.7553711,-0.473145 0.2766912,-0.143868 0.575519,-0.26838 0.8964844,-0.373535 0.3209611,-0.1106647 0.6668266,-0.1964393 1.0375977,-0.2573239 0.3707646,-0.06086 0.7664348,-0.091296 1.1870118,-0.091309 0.597651,1.23e-5 1.139968,0.066419 1.626953,0.1992188 0.492507,0.1272911 0.913079,0.3154421 1.261719,0.5644531 0.348625,0.243501 0.617017,0.545096 0.805176,0.904786 0.193676,0.354177 0.290519,0.760914 0.290527,1.220214"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 24.803816,19.493301 -1.460938,0 0,2.515137 -2.498535,0 0,-2.515137 -5.013672,0 0,-1.784668 5.154785,-7.8359371 2.357422,0 0,7.6284181 1.460938,0 0,1.992187 m -3.959473,-1.992187 0,-2.058594 c -5e-6,-0.07193 -5e-6,-0.17431 0,-0.307129 0.0055,-0.138339 0.01106,-0.293287 0.0166,-0.464844 0.0055,-0.171541 0.01106,-0.348625 0.0166,-0.53125 0.01106,-0.182609 0.01936,-0.356925 0.0249,-0.522949 0.01106,-0.166007 0.01936,-0.309887 0.0249,-0.43164 0.01106,-0.12727 0.01936,-0.218579 0.0249,-0.273926 l -0.07471,0 c -0.09961,0.232431 -0.213058,0.478687 -0.340332,0.738769 -0.121749,0.2601 -0.262862,0.520191 -0.42334,0.780274 l -2.02539,3.071289 2.755859,0"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/35.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/35.png
new file mode 100644
index 0000000..02118e3
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/35.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/35.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/35.svg
new file mode 100644
index 0000000..da7780a
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/35.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 14.784773,12.587051 c -8e-6,0.420582 -0.06918,0.799651 -0.20752,1.137207 -0.13282,0.33204 -0.318204,0.625334 -0.556152,0.879883 -0.232429,0.249031 -0.509122,0.459317 -0.830078,0.63086 -0.315436,0.166022 -0.658535,0.2933 -1.029297,0.381836 l 0,0.0498 c 0.979485,0.121751 1.721021,0.420579 2.224609,0.896485 0.503573,0.470382 0.755363,1.106775 0.755371,1.909179 -8e-6,0.531253 -0.09685,1.023766 -0.290527,1.477539 -0.188159,0.448244 -0.481453,0.83838 -0.879883,1.170411 -0.39291,0.332031 -0.890957,0.592122 -1.49414,0.780273 -0.597662,0.182617 -1.303228,0.273926 -2.1167,0.273926 -0.6529976,0 -1.2672548,-0.05534 -1.842773,-0.166016 C 7.9421607,21.903295 7.4053774,21.740046 6.9073315,21.518692 l 0,-2.183105 c 0.2490227,0.132815 0.5118805,0.249025 0.7885742,0.348632 0.2766912,0.09961 0.5533836,0.185387 0.8300781,0.257325 0.2766904,0.06641 0.5478489,0.116212 0.8134766,0.149414 0.2711557,0.0332 0.5257127,0.04981 0.7636716,0.0498 0.475908,2e-6 0.871578,-0.04427 1.187012,-0.132
 812 0.315424,-0.08854 0.567215,-0.213051 0.755371,-0.373535 0.188145,-0.16048 0.320958,-0.351397 0.398438,-0.572754 0.083,-0.226885 0.124505,-0.473141 0.124511,-0.73877 -6e-6,-0.249019 -0.05258,-0.47314 -0.157715,-0.672363 -0.09962,-0.204748 -0.26563,-0.376297 -0.498046,-0.514648 C 11.685809,16.992 11.386981,16.881323 11.016218,16.803844 10.645446,16.726374 10.188903,16.687639 9.6465893,16.687633 l -0.8632813,0 0,-1.801269 0.8466797,0 c 0.5091113,7e-6 0.9324503,-0.04426 1.2700193,-0.132813 0.337561,-0.09407 0.605952,-0.218579 0.805176,-0.373535 0.204747,-0.160474 0.348627,-0.345858 0.431641,-0.556152 0.083,-0.210278 0.124506,-0.434399 0.124511,-0.672363 -5e-6,-0.431632 -0.135585,-0.769197 -0.406738,-1.012696 -0.26563,-0.243479 -0.688969,-0.365224 -1.270019,-0.365234 -0.265629,10e-6 -0.514653,0.02768 -0.7470708,0.08301 -0.2268911,0.04981 -0.4399443,0.116221 -0.6391601,0.199218 -0.1936875,0.07748 -0.3735376,0.166026 -0.5395508,0.265625 -0.1604838,0.09409 -0.3071308,0.188161 -0
 .4399414,0.282227 L 6.923933,10.893692 c 0.2324212,-0.171538 0.4842113,-0.329253 0.7553711,-0.473145 0.2766912,-0.143868 0.575519,-0.26838 0.8964844,-0.373535 0.3209611,-0.1106647 0.6668266,-0.1964393 1.0375977,-0.2573239 0.3707646,-0.06086 0.7664348,-0.091296 1.1870118,-0.091309 0.597651,1.23e-5 1.139968,0.066419 1.626953,0.1992188 0.492507,0.1272911 0.913079,0.3154421 1.261719,0.5644531 0.348625,0.243501 0.617017,0.545096 0.805176,0.904786 0.193676,0.354177 0.290519,0.760914 0.290527,1.220214"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 20.761335,14.255508 c 0.520177,8e-6 1.004389,0.08025 1.452637,0.240723 0.448235,0.160489 0.838372,0.395678 1.17041,0.705566 0.332024,0.309903 0.592114,0.697272 0.780274,1.16211 0.188142,0.459315 0.282218,0.987797 0.282226,1.585449 -8e-6,0.658532 -0.102385,1.250654 -0.307129,1.776367 -0.20476,0.520184 -0.506355,0.962892 -0.904785,1.328125 -0.398444,0.359701 -0.893724,0.636394 -1.48584,0.830078 -0.586594,0.193685 -1.261723,0.290528 -2.02539,0.290528 -0.304366,0 -0.605961,-0.01384 -0.904785,-0.0415 -0.298831,-0.02767 -0.586591,-0.06917 -0.863282,-0.124512 -0.27116,-0.04981 -0.531251,-0.116211 -0.780273,-0.199219 -0.243491,-0.08301 -0.464845,-0.17985 -0.664063,-0.290527 l 0,-2.216309 c 0.193684,0.11068 0.417805,0.215823 0.672364,0.31543 0.254555,0.09408 0.517413,0.177086 0.788574,0.249024 0.27669,0.06641 0.553383,0.121746 0.830078,0.166015 0.276689,0.03874 0.539547,0.05811 0.788574,0.05811 0.741532,2e-6 1.305985,-0.152179 1.69336,-0.456543 0.387364,-0.309893 0.581048
 ,-0.799639 0.581054,-1.469239 -6e-6,-0.597651 -0.190924,-1.051427 -0.572754,-1.361328 -0.376307,-0.315424 -0.960128,-0.473139 -1.751464,-0.473144 -0.143884,5e-6 -0.298832,0.0083 -0.464844,0.0249 -0.160485,0.01661 -0.320967,0.03874 -0.481446,0.06641 -0.15495,0.02768 -0.304364,0.05811 -0.448242,0.09131 -0.143882,0.02767 -0.268394,0.05811 -0.373535,0.09131 l -1.020996,-0.547852 0.456543,-6.1840821 6.408203,0 0,2.1748051 -4.183594,0 -0.199218,2.382324 c 0.177079,-0.03873 0.381832,-0.07747 0.614257,-0.116211 0.237952,-0.03873 0.542314,-0.0581 0.913086,-0.05811"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/36.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/36.png
new file mode 100644
index 0000000..30f4fdf
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/36.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/36.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/36.svg
new file mode 100644
index 0000000..348549a
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/36.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 14.784773,12.587051 c -8e-6,0.420582 -0.06918,0.799651 -0.20752,1.137207 -0.13282,0.33204 -0.318204,0.625334 -0.556152,0.879883 -0.232429,0.249031 -0.509122,0.459317 -0.830078,0.63086 -0.315436,0.166022 -0.658535,0.2933 -1.029297,0.381836 l 0,0.0498 c 0.979485,0.121751 1.721021,0.420579 2.224609,0.896485 0.503573,0.470382 0.755363,1.106775 0.755371,1.909179 -8e-6,0.531253 -0.09685,1.023766 -0.290527,1.477539 -0.188159,0.448244 -0.481453,0.83838 -0.879883,1.170411 -0.39291,0.332031 -0.890957,0.592122 -1.49414,0.780273 -0.597662,0.182617 -1.303228,0.273926 -2.1167,0.273926 -0.6529976,0 -1.2672548,-0.05534 -1.842773,-0.166016 C 7.9421607,21.903295 7.4053774,21.740046 6.9073315,21.518692 l 0,-2.183105 c 0.2490227,0.132815 0.5118805,0.249025 0.7885742,0.348632 0.2766912,0.09961 0.5533836,0.185387 0.8300781,0.257325 0.2766904,0.06641 0.5478489,0.116212 0.8134766,0.149414 0.2711557,0.0332 0.5257127,0.04981 0.7636716,0.0498 0.475908,2e-6 0.871578,-0.04427 1.187012,-0.132
 812 0.315424,-0.08854 0.567215,-0.213051 0.755371,-0.373535 0.188145,-0.16048 0.320958,-0.351397 0.398438,-0.572754 0.083,-0.226885 0.124505,-0.473141 0.124511,-0.73877 -6e-6,-0.249019 -0.05258,-0.47314 -0.157715,-0.672363 -0.09962,-0.204748 -0.26563,-0.376297 -0.498046,-0.514648 C 11.685809,16.992 11.386981,16.881323 11.016218,16.803844 10.645446,16.726374 10.188903,16.687639 9.6465893,16.687633 l -0.8632813,0 0,-1.801269 0.8466797,0 c 0.5091113,7e-6 0.9324503,-0.04426 1.2700193,-0.132813 0.337561,-0.09407 0.605952,-0.218579 0.805176,-0.373535 0.204747,-0.160474 0.348627,-0.345858 0.431641,-0.556152 0.083,-0.210278 0.124506,-0.434399 0.124511,-0.672363 -5e-6,-0.431632 -0.135585,-0.769197 -0.406738,-1.012696 -0.26563,-0.243479 -0.688969,-0.365224 -1.270019,-0.365234 -0.265629,10e-6 -0.514653,0.02768 -0.7470708,0.08301 -0.2268911,0.04981 -0.4399443,0.116221 -0.6391601,0.199218 -0.1936875,0.07748 -0.3735376,0.166026 -0.5395508,0.265625 -0.1604838,0.09409 -0.3071308,0.188161 -0
 .4399414,0.282227 L 6.923933,10.893692 c 0.2324212,-0.171538 0.4842113,-0.329253 0.7553711,-0.473145 0.2766912,-0.143868 0.575519,-0.26838 0.8964844,-0.373535 0.3209611,-0.1106647 0.6668266,-0.1964393 1.0375977,-0.2573239 0.3707646,-0.06086 0.7664348,-0.091296 1.1870118,-0.091309 0.597651,1.23e-5 1.139968,0.066419 1.626953,0.1992188 0.492507,0.1272911 0.913079,0.3154421 1.261719,0.5644531 0.348625,0.243501 0.617017,0.545096 0.805176,0.904786 0.193676,0.354177 0.290519,0.760914 0.290527,1.220214"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 16.428328,16.853653 c -1e-6,-0.581049 0.03044,-1.159336 0.09131,-1.734863 0.06641,-0.575514 0.17985,-1.126132 0.340332,-1.651856 0.166015,-0.531241 0.387369,-1.023753 0.664063,-1.477539 0.282224,-0.453765 0.636391,-0.846669 1.0625,-1.178711 0.431637,-0.337553 0.946285,-0.600411 1.543945,-0.788574 0.603185,-0.1936727 1.305984,-0.2905151 2.108398,-0.2905274 0.116205,1.23e-5 0.243483,0.00278 0.381836,0.0083 0.13834,0.00555 0.276686,0.013847 0.415039,0.024902 0.143873,0.00555 0.282219,0.016614 0.415039,0.033203 0.132805,0.016614 0.251783,0.035982 0.356934,0.058105 l 0,2.0502924 c -0.210294,-0.04979 -0.434415,-0.08853 -0.672363,-0.116211 -0.232429,-0.03319 -0.467618,-0.04979 -0.705567,-0.0498 -0.747076,1e-5 -1.361333,0.09408 -1.842773,0.282226 -0.48145,0.182627 -0.863285,0.439951 -1.145508,0.771973 -0.28223,0.33204 -0.484215,0.730477 -0.605957,1.195312 -0.116214,0.464852 -0.188154,0.9795 -0.21582,1.543946 l 0.09961,0 c 0.110674,-0.199212 0.243487,-0.384596 0.398438,-0
 .556153 0.160478,-0.177076 0.345862,-0.32649 0.556152,-0.448242 0.210282,-0.127271 0.445471,-0.22688 0.705566,-0.298828 0.265621,-0.07193 0.561681,-0.107902 0.888184,-0.10791 0.52571,8e-6 0.998854,0.08578 1.419434,0.257324 0.420565,0.171557 0.774732,0.42058 1.0625,0.74707 0.293286,0.326504 0.517407,0.727708 0.672363,1.203614 0.154939,0.475916 0.232413,1.021 0.232422,1.635254 -9e-6,0.658532 -0.09408,1.247887 -0.282227,1.768066 -0.182625,0.520184 -0.445483,0.962892 -0.788574,1.328125 -0.343106,0.359701 -0.758145,0.636394 -1.245117,0.830078 -0.486985,0.188151 -1.034836,0.282227 -1.643555,0.282227 -0.59766,0 -1.156579,-0.105144 -1.676758,-0.31543 -0.520185,-0.21582 -0.97396,-0.542317 -1.361328,-0.979492 -0.381837,-0.437173 -0.683432,-0.987791 -0.904785,-1.651856 -0.215821,-0.669593 -0.323731,-1.460933 -0.32373,-2.374023 m 4.216796,3.270508 c 0.226883,2e-6 0.431636,-0.0415 0.614258,-0.124512 0.188146,-0.08854 0.348627,-0.218585 0.481446,-0.390137 0.13834,-0.17708 0.243483,-0.3984
 34 0.315429,-0.664062 0.07747,-0.265622 0.116205,-0.581051 0.116211,-0.946289 -6e-6,-0.592118 -0.124518,-1.056961 -0.373535,-1.394531 -0.243495,-0.343094 -0.61703,-0.514643 -1.120605,-0.514649 -0.254562,6e-6 -0.486984,0.04981 -0.697266,0.149414 -0.21029,0.09962 -0.390141,0.229661 -0.539551,0.390137 -0.149417,0.160487 -0.265628,0.340337 -0.348633,0.539551 -0.07748,0.199223 -0.116214,0.401209 -0.116211,0.605957 -3e-6,0.28223 0.0332,0.564456 0.09961,0.846679 0.07194,0.276696 0.17708,0.528486 0.315429,0.755371 0.143877,0.221357 0.318193,0.401207 0.52295,0.539551 0.210282,0.138349 0.453771,0.207522 0.730468,0.20752"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/37.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/37.png
new file mode 100644
index 0000000..6174706
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/37.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/37.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/37.svg
new file mode 100644
index 0000000..7bc04d9
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/37.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 14.784773,12.587051 c -8e-6,0.420582 -0.06918,0.799651 -0.20752,1.137207 -0.13282,0.33204 -0.318204,0.625334 -0.556152,0.879883 -0.232429,0.249031 -0.509122,0.459317 -0.830078,0.63086 -0.315436,0.166022 -0.658535,0.2933 -1.029297,0.381836 l 0,0.0498 c 0.979485,0.121751 1.721021,0.420579 2.224609,0.896485 0.503573,0.470382 0.755363,1.106775 0.755371,1.909179 -8e-6,0.531253 -0.09685,1.023766 -0.290527,1.477539 -0.188159,0.448244 -0.481453,0.83838 -0.879883,1.170411 -0.39291,0.332031 -0.890957,0.592122 -1.49414,0.780273 -0.597662,0.182617 -1.303228,0.273926 -2.1167,0.273926 -0.6529976,0 -1.2672548,-0.05534 -1.842773,-0.166016 C 7.9421607,21.903295 7.4053774,21.740046 6.9073315,21.518692 l 0,-2.183105 c 0.2490227,0.132815 0.5118805,0.249025 0.7885742,0.348632 0.2766912,0.09961 0.5533836,0.185387 0.8300781,0.257325 0.2766904,0.06641 0.5478489,0.116212 0.8134766,0.149414 0.2711557,0.0332 0.5257127,0.04981 0.7636716,0.0498 0.475908,2e-6 0.871578,-0.04427 1.187012,-0.132
 812 0.315424,-0.08854 0.567215,-0.213051 0.755371,-0.373535 0.188145,-0.16048 0.320958,-0.351397 0.398438,-0.572754 0.083,-0.226885 0.124505,-0.473141 0.124511,-0.73877 -6e-6,-0.249019 -0.05258,-0.47314 -0.157715,-0.672363 -0.09962,-0.204748 -0.26563,-0.376297 -0.498046,-0.514648 C 11.685809,16.992 11.386981,16.881323 11.016218,16.803844 10.645446,16.726374 10.188903,16.687639 9.6465893,16.687633 l -0.8632813,0 0,-1.801269 0.8466797,0 c 0.5091113,7e-6 0.9324503,-0.04426 1.2700193,-0.132813 0.337561,-0.09407 0.605952,-0.218579 0.805176,-0.373535 0.204747,-0.160474 0.348627,-0.345858 0.431641,-0.556152 0.083,-0.210278 0.124506,-0.434399 0.124511,-0.672363 -5e-6,-0.431632 -0.135585,-0.769197 -0.406738,-1.012696 -0.26563,-0.243479 -0.688969,-0.365224 -1.270019,-0.365234 -0.265629,10e-6 -0.514653,0.02768 -0.7470708,0.08301 -0.2268911,0.04981 -0.4399443,0.116221 -0.6391601,0.199218 -0.1936875,0.07748 -0.3735376,0.166026 -0.5395508,0.265625 -0.1604838,0.09409 -0.3071308,0.188161 -0
 .4399414,0.282227 L 6.923933,10.893692 c 0.2324212,-0.171538 0.4842113,-0.329253 0.7553711,-0.473145 0.2766912,-0.143868 0.575519,-0.26838 0.8964844,-0.373535 0.3209611,-0.1106647 0.6668266,-0.1964393 1.0375977,-0.2573239 0.3707646,-0.06086 0.7664348,-0.091296 1.1870118,-0.091309 0.597651,1.23e-5 1.139968,0.066419 1.626953,0.1992188 0.492507,0.1272911 0.913079,0.3154421 1.261719,0.5644531 0.348625,0.243501 0.617017,0.545096 0.805176,0.904786 0.193676,0.354177 0.290519,0.760914 0.290527,1.220214"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 17.51573,22.008438 4.316406,-9.960937 -5.578125,0 0,-2.1582035 8.367188,0 0,1.6103515 -4.424317,10.508789 -2.681152,0"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/38.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/38.png
new file mode 100644
index 0000000..161661d
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/38.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/38.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/38.svg
new file mode 100644
index 0000000..ec2ad98
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/38.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 14.784773,12.587051 c -8e-6,0.420582 -0.06918,0.799651 -0.20752,1.137207 -0.13282,0.33204 -0.318204,0.625334 -0.556152,0.879883 -0.232429,0.249031 -0.509122,0.459317 -0.830078,0.63086 -0.315436,0.166022 -0.658535,0.2933 -1.029297,0.381836 l 0,0.0498 c 0.979485,0.121751 1.721021,0.420579 2.224609,0.896485 0.503573,0.470382 0.755363,1.106775 0.755371,1.909179 -8e-6,0.531253 -0.09685,1.023766 -0.290527,1.477539 -0.188159,0.448244 -0.481453,0.83838 -0.879883,1.170411 -0.39291,0.332031 -0.890957,0.592122 -1.49414,0.780273 -0.597662,0.182617 -1.303228,0.273926 -2.1167,0.273926 -0.6529976,0 -1.2672548,-0.05534 -1.842773,-0.166016 C 7.9421607,21.903295 7.4053774,21.740046 6.9073315,21.518692 l 0,-2.183105 c 0.2490227,0.132815 0.5118805,0.249025 0.7885742,0.348632 0.2766912,0.09961 0.5533836,0.185387 0.8300781,0.257325 0.2766904,0.06641 0.5478489,0.116212 0.8134766,0.149414 0.2711557,0.0332 0.5257127,0.04981 0.7636716,0.0498 0.475908,2e-6 0.871578,-0.04427 1.187012,-0.132
 812 0.315424,-0.08854 0.567215,-0.213051 0.755371,-0.373535 0.188145,-0.16048 0.320958,-0.351397 0.398438,-0.572754 0.083,-0.226885 0.124505,-0.473141 0.124511,-0.73877 -6e-6,-0.249019 -0.05258,-0.47314 -0.157715,-0.672363 -0.09962,-0.204748 -0.26563,-0.376297 -0.498046,-0.514648 C 11.685809,16.992 11.386981,16.881323 11.016218,16.803844 10.645446,16.726374 10.188903,16.687639 9.6465893,16.687633 l -0.8632813,0 0,-1.801269 0.8466797,0 c 0.5091113,7e-6 0.9324503,-0.04426 1.2700193,-0.132813 0.337561,-0.09407 0.605952,-0.218579 0.805176,-0.373535 0.204747,-0.160474 0.348627,-0.345858 0.431641,-0.556152 0.083,-0.210278 0.124506,-0.434399 0.124511,-0.672363 -5e-6,-0.431632 -0.135585,-0.769197 -0.406738,-1.012696 -0.26563,-0.243479 -0.688969,-0.365224 -1.270019,-0.365234 -0.265629,10e-6 -0.514653,0.02768 -0.7470708,0.08301 -0.2268911,0.04981 -0.4399443,0.116221 -0.6391601,0.199218 -0.1936875,0.07748 -0.3735376,0.166026 -0.5395508,0.265625 -0.1604838,0.09409 -0.3071308,0.188161 -0
 .4399414,0.282227 L 6.923933,10.893692 c 0.2324212,-0.171538 0.4842113,-0.329253 0.7553711,-0.473145 0.2766912,-0.143868 0.575519,-0.26838 0.8964844,-0.373535 0.3209611,-0.1106647 0.6668266,-0.1964393 1.0375977,-0.2573239 0.3707646,-0.06086 0.7664348,-0.091296 1.1870118,-0.091309 0.597651,1.23e-5 1.139968,0.066419 1.626953,0.1992188 0.492507,0.1272911 0.913079,0.3154421 1.261719,0.5644531 0.348625,0.243501 0.617017,0.545096 0.805176,0.904786 0.193676,0.354177 0.290519,0.760914 0.290527,1.220214"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 20.48741,9.7149811 c 0.503575,1.23e-5 0.979486,0.060885 1.427734,0.1826172 0.448236,0.1217567 0.841139,0.3043737 1.178711,0.5478517 0.337557,0.243501 0.605949,0.547862 0.805176,0.913086 0.19921,0.365244 0.298819,0.794118 0.298828,1.286621 -9e-6,0.365243 -0.05535,0.697274 -0.166016,0.996094 -0.110685,0.293302 -0.262866,0.561694 -0.456543,0.805175 -0.193692,0.237963 -0.423347,0.451017 -0.688965,0.639161 -0.265631,0.188157 -0.553392,0.359707 -0.863281,0.514648 0.320957,0.171556 0.63362,0.362473 0.937988,0.572754 0.309889,0.210292 0.583814,0.448247 0.821778,0.713867 0.237947,0.260096 0.428865,0.55339 0.572754,0.879883 0.143871,0.326501 0.215811,0.691735 0.21582,1.095703 -9e-6,0.503583 -0.09962,0.960126 -0.298828,1.369629 -0.199227,0.409506 -0.478687,0.758139 -0.838379,1.045898 -0.359708,0.287761 -0.791348,0.509115 -1.294922,0.664063 -0.498053,0.154948 -1.048671,0.232422 -1.651855,0.232422 -0.652999,0 -1.234053,-0.07471 -1.743164,-0.224121 -0.509117,-0.149414 -0.93799
 1,-0.362467 -1.286622,-0.639161 -0.348634,-0.276691 -0.614258,-0.617023 -0.796875,-1.020996 -0.177084,-0.403969 -0.265625,-0.857744 -0.265625,-1.361328 0,-0.415035 0.06087,-0.78857 0.182618,-1.120605 0.121744,-0.332027 0.287759,-0.630855 0.498046,-0.896485 0.210285,-0.265619 0.456542,-0.500808 0.73877,-0.705566 0.282224,-0.204747 0.583819,-0.384597 0.904785,-0.539551 -0.271161,-0.171543 -0.525718,-0.356927 -0.763672,-0.556152 -0.237957,-0.204746 -0.445477,-0.428866 -0.622558,-0.672363 -0.171551,-0.249016 -0.309897,-0.522942 -0.415039,-0.821778 -0.09961,-0.298819 -0.149415,-0.628083 -0.149414,-0.987793 -1e-6,-0.481435 0.09961,-0.902008 0.298828,-1.261718 0.204751,-0.365224 0.478676,-0.669585 0.821777,-0.913086 0.343097,-0.249012 0.738767,-0.434396 1.187012,-0.5561527 0.448238,-0.1217326 0.918615,-0.1826049 1.411133,-0.1826172 m -1.718262,9.0644529 c -3e-6,0.221357 0.03597,0.42611 0.10791,0.614258 0.07194,0.18262 0.17708,0.340334 0.31543,0.473145 0.143876,0.132814 0.32096,0.23
 7957 0.53125,0.315429 0.210282,0.07194 0.453771,0.107912 0.730468,0.10791 0.58105,2e-6 1.015457,-0.135577 1.303223,-0.406738 0.287754,-0.27669 0.431634,-0.639157 0.431641,-1.087402 -7e-6,-0.232419 -0.04981,-0.439938 -0.149414,-0.622559 -0.09408,-0.188147 -0.218594,-0.359696 -0.373535,-0.514648 -0.14942,-0.160478 -0.32097,-0.307125 -0.514649,-0.439942 -0.19369,-0.132807 -0.387375,-0.260086 -0.581055,-0.381836 L 20.3878,16.72084 c -0.243494,0.12175 -0.464848,0.254563 -0.664062,0.398438 -0.199223,0.138351 -0.370772,0.293299 -0.514649,0.464844 -0.138349,0.16602 -0.246259,0.348637 -0.32373,0.547851 -0.07748,0.199223 -0.116214,0.415043 -0.116211,0.647461 m 1.70166,-7.188476 c -0.182622,10e-6 -0.354171,0.02768 -0.514648,0.08301 -0.154952,0.05535 -0.290532,0.13559 -0.406739,0.240723 -0.11068,0.105153 -0.199222,0.235199 -0.265625,0.390137 -0.06641,0.154957 -0.09961,0.329274 -0.09961,0.522949 -3e-6,0.232431 0.0332,0.434416 0.09961,0.605957 0.07194,0.166024 0.166012,0.315438 0.282227,0
 .448242 0.121741,0.127287 0.260087,0.243498 0.415039,0.348633 0.160477,0.09962 0.32926,0.199226 0.506348,0.298828 0.171544,-0.08853 0.334793,-0.185376 0.489746,-0.290527 0.154942,-0.105135 0.290522,-0.224113 0.406738,-0.356934 0.121739,-0.138338 0.218581,-0.293286 0.290527,-0.464843 0.07193,-0.171541 0.107904,-0.367993 0.10791,-0.589356 -6e-6,-0.193675 -0.03321,-0.367992 -0.09961,-0.522949 -0.06641,-0.154938 -0.15772,-0.284984 -0.273926,-0.390137 -0.116216,-0.105133 -0.254562,-0.185374 -0.415039,-0.240723 -0.160487,-0.05533 -0.334803,-0.083 -0.522949,-0.08301"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/39.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/39.png
new file mode 100644
index 0000000..2d46b24
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/39.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/39.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/39.svg
new file mode 100644
index 0000000..664ffdd
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/39.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 14.784773,12.587051 c -8e-6,0.420582 -0.06918,0.799651 -0.20752,1.137207 -0.13282,0.33204 -0.318204,0.625334 -0.556152,0.879883 -0.232429,0.249031 -0.509122,0.459317 -0.830078,0.63086 -0.315436,0.166022 -0.658535,0.2933 -1.029297,0.381836 l 0,0.0498 c 0.979485,0.121751 1.721021,0.420579 2.224609,0.896485 0.503573,0.470382 0.755363,1.106775 0.755371,1.909179 -8e-6,0.531253 -0.09685,1.023766 -0.290527,1.477539 -0.188159,0.448244 -0.481453,0.83838 -0.879883,1.170411 -0.39291,0.332031 -0.890957,0.592122 -1.49414,0.780273 -0.597662,0.182617 -1.303228,0.273926 -2.1167,0.273926 -0.6529976,0 -1.2672548,-0.05534 -1.842773,-0.166016 C 7.9421607,21.903295 7.4053774,21.740046 6.9073315,21.518692 l 0,-2.183105 c 0.2490227,0.132815 0.5118805,0.249025 0.7885742,0.348632 0.2766912,0.09961 0.5533836,0.185387 0.8300781,0.257325 0.2766904,0.06641 0.5478489,0.116212 0.8134766,0.149414 0.2711557,0.0332 0.5257127,0.04981 0.7636716,0.0498 0.475908,2e-6 0.871578,-0.04427 1.187012,-0.132
 812 0.315424,-0.08854 0.567215,-0.213051 0.755371,-0.373535 0.188145,-0.16048 0.320958,-0.351397 0.398438,-0.572754 0.083,-0.226885 0.124505,-0.473141 0.124511,-0.73877 -6e-6,-0.249019 -0.05258,-0.47314 -0.157715,-0.672363 -0.09962,-0.204748 -0.26563,-0.376297 -0.498046,-0.514648 C 11.685809,16.992 11.386981,16.881323 11.016218,16.803844 10.645446,16.726374 10.188903,16.687639 9.6465893,16.687633 l -0.8632813,0 0,-1.801269 0.8466797,0 c 0.5091113,7e-6 0.9324503,-0.04426 1.2700193,-0.132813 0.337561,-0.09407 0.605952,-0.218579 0.805176,-0.373535 0.204747,-0.160474 0.348627,-0.345858 0.431641,-0.556152 0.083,-0.210278 0.124506,-0.434399 0.124511,-0.672363 -5e-6,-0.431632 -0.135585,-0.769197 -0.406738,-1.012696 -0.26563,-0.243479 -0.688969,-0.365224 -1.270019,-0.365234 -0.265629,10e-6 -0.514653,0.02768 -0.7470708,0.08301 -0.2268911,0.04981 -0.4399443,0.116221 -0.6391601,0.199218 -0.1936875,0.07748 -0.3735376,0.166026 -0.5395508,0.265625 -0.1604838,0.09409 -0.3071308,0.188161 -0
 .4399414,0.282227 L 6.923933,10.893692 c 0.2324212,-0.171538 0.4842113,-0.329253 0.7553711,-0.473145 0.2766912,-0.143868 0.575519,-0.26838 0.8964844,-0.373535 0.3209611,-0.1106647 0.6668266,-0.1964393 1.0375977,-0.2573239 0.3707646,-0.06086 0.7664348,-0.091296 1.1870118,-0.091309 0.597651,1.23e-5 1.139968,0.066419 1.626953,0.1992188 0.492507,0.1272911 0.913079,0.3154421 1.261719,0.5644531 0.348625,0.243501 0.617017,0.545096 0.805176,0.904786 0.193676,0.354177 0.290519,0.760914 0.290527,1.220214"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 24.554792,15.052383 c -8e-6,0.581061 -0.03321,1.162116 -0.09961,1.743164 -0.06088,0.575526 -0.174325,1.126144 -0.340332,1.651856 -0.16049,0.525719 -0.381844,1.018232 -0.664063,1.477539 -0.2767,0.453778 -0.630866,0.846681 -1.0625,1.178711 -0.426112,0.332032 -0.94076,0.59489 -1.543945,0.788574 -0.597661,0.188151 -1.300459,0.282227 -2.108398,0.282227 -0.116214,0 -0.243493,-0.0028 -0.381836,-0.0083 -0.138349,-0.0055 -0.279462,-0.01384 -0.42334,-0.0249 -0.138348,-0.0055 -0.273928,-0.0166 -0.406738,-0.0332 -0.132814,-0.01107 -0.249025,-0.02767 -0.348633,-0.0498 l 0,-2.058594 c 0.204751,0.05534 0.423338,0.09961 0.655762,0.132813 0.237953,0.02767 0.478675,0.04151 0.722168,0.0415 0.747066,2e-6 1.361324,-0.09131 1.842773,-0.273925 0.48144,-0.188149 0.863276,-0.44824 1.145508,-0.780274 0.28222,-0.337562 0.481439,-0.738766 0.597656,-1.203613 0.121738,-0.464839 0.196445,-0.97672 0.224121,-1.535645 l -0.10791,0 c -0.110683,0.199225 -0.243496,0.384609 -0.398438,0.556153 -0.1549
 53,0.171554 -0.33757,0.320968 -0.547851,0.448242 -0.210292,0.127283 -0.448247,0.226892 -0.713867,0.298828 -0.26563,0.07194 -0.561691,0.107914 -0.888184,0.10791 -0.525719,4e-6 -0.998863,-0.08577 -1.419433,-0.257324 -0.420575,-0.171545 -0.777509,-0.420568 -1.070801,-0.74707 -0.287762,-0.326492 -0.509116,-0.727696 -0.664063,-1.203614 -0.154948,-0.475904 -0.232422,-1.020988 -0.232422,-1.635253 0,-0.65852 0.09131,-1.247875 0.273926,-1.768067 0.18815,-0.520172 0.453775,-0.960113 0.796875,-1.319824 0.343097,-0.365223 0.758136,-0.644682 1.245117,-0.838379 0.49251,-0.1936727 1.043128,-0.2905151 1.651856,-0.2905274 0.597651,1.23e-5 1.15657,0.1079224 1.676758,0.3237304 0.520175,0.210298 0.971184,0.534028 1.353027,0.971192 0.381828,0.437185 0.683423,0.990569 0.904785,1.660156 0.221346,0.669605 0.332023,1.458178 0.332031,2.365722 m -4.216796,-3.262207 c -0.226893,1.1e-5 -0.434412,0.04151 -0.622559,0.124512 -0.188155,0.08302 -0.351403,0.213063 -0.489746,0.390137 -0.132816,0.171559 -0.2379
 59,0.392913 -0.31543,0.664062 -0.07194,0.265634 -0.107913,0.581063 -0.10791,0.946289 -3e-6,0.586596 0.124509,1.05144 0.373535,1.394532 0.24902,0.343105 0.625322,0.514654 1.128906,0.514648 0.254553,6e-6 0.486975,-0.0498 0.697266,-0.149414 0.210281,-0.0996 0.390131,-0.229648 0.539551,-0.390137 0.149408,-0.160475 0.262852,-0.340325 0.340332,-0.53955 0.083,-0.199212 0.124505,-0.401197 0.124512,-0.605958 -7e-6,-0.282218 -0.03598,-0.561677 -0.107911,-0.838378 -0.06641,-0.282218 -0.171555,-0.534008 -0.315429,-0.755372 -0.138352,-0.226878 -0.312669,-0.409495 -0.52295,-0.547851 -0.204757,-0.138336 -0.44548,-0.207509 -0.722167,-0.20752"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/4.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/4.png
new file mode 100644
index 0000000..9b9dd88
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/4.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/4.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/4.svg
new file mode 100644
index 0000000..bc06c73
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/4.svg
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 20.078077,19.493301 -1.460937,0 0,2.515137 -2.498535,0 0,-2.515137 -5.013672,0 0,-1.784668 5.154785,-7.8359371 2.357422,0 0,7.6284181 1.460937,0 0,1.992187 m -3.959472,-1.992187 0,-2.058594 c -5e-6,-0.07193 -5e-6,-0.17431 0,-0.307129 0.0055,-0.138339 0.01106,-0.293287 0.0166,-0.464844 0.0055,-0.171541 0.01106,-0.348625 0.0166,-0.53125 0.01106,-0.182609 0.01936,-0.356925 0.0249,-0.522949 0.01106,-0.166007 0.01936,-0.309887 0.0249,-0.43164 0.01106,-0.12727 0.01936,-0.218579 0.0249,-0.273926 l -0.07471,0 c -0.09962,0.232431 -0.213058,0.478687 -0.340332,0.738769 -0.12175,0.2601 -0.262863,0.520191 -0.42334,0.780274 l -2.025391,3.071289 2.75586,0"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/40.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/40.png
new file mode 100644
index 0000000..fe2a68f
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/40.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/40.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/40.svg
new file mode 100644
index 0000000..5a94d1b
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/40.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 15.440535,19.493301 -1.460938,0 0,2.515137 -2.498535,0 0,-2.515137 -5.0136719,0 0,-1.784668 5.1547849,-7.8359371 2.357422,0 0,7.6284181 1.460938,0 0,1.992187 m -3.959473,-1.992187 0,-2.058594 c -5e-6,-0.07193 -5e-6,-0.17431 0,-0.307129 0.0055,-0.138339 0.01106,-0.293287 0.0166,-0.464844 0.0055,-0.171541 0.01106,-0.348625 0.0166,-0.53125 0.01106,-0.182609 0.01936,-0.356925 0.0249,-0.522949 0.01106,-0.166007 0.01936,-0.309887 0.0249,-0.43164 0.01106,-0.12727 0.01936,-0.218579 0.0249,-0.273926 l -0.07471,0 c -0.09961,0.232431 -0.213058,0.478687 -0.340332,0.738769 -0.121749,0.2601 -0.262863,0.520191 -0.42334,0.780274 l -2.0253904,3.071289 2.7558594,0"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 24.6378,15.940567 c -9e-6,0.979497 -0.07748,1.853845 -0.232422,2.623047 -0.149422,0.769208 -0.392912,1.422202 -0.730468,1.958984 -0.332039,0.536785 -0.763679,0.94629 -1.294922,1.228516 -0.525722,0.282226 -1.162115,0.42334 -1.90918,0.42334 -0.702803,0 -1.314294,-0.141114 -1.834473,-0.42334 -0.520184,-0.282226 -0.951824,-0.691731 -1.294922,-1.228516 -0.3431,-0.536782 -0.600424,-1.189776 -0.771972,-1.958984 -0.166016,-0.769202 -0.249024,-1.64355 -0.249024,-2.623047 0,-0.979485 0.07471,-1.8566 0.224121,-2.631348 0.154948,-0.77473 0.398437,-1.430491 0.730469,-1.967285 0.33203,-0.536772 0.760903,-0.946277 1.286621,-1.228515 0.525713,-0.2877487 1.162106,-0.4316287 1.90918,-0.431641 0.69726,1.23e-5 1.305984,0.1411254 1.826172,0.42334 0.520175,0.282238 0.954582,0.691743 1.303223,1.228515 0.348624,0.536794 0.608715,1.192555 0.780273,1.967286 0.171541,0.774747 0.257315,1.654629 0.257324,2.639648 m -5.760742,0 c -3e-6,1.383468 0.118975,2.423832 0.356934,3.121094 0.237952,0.6
 97268 0.650223,1.0459 1.236816,1.045898 0.575516,2e-6 0.987787,-0.345863 1.236816,-1.037597 0.254552,-0.691729 0.38183,-1.734859 0.381836,-3.129395 -6e-6,-1.38899 -0.127284,-2.43212 -0.381836,-3.129395 -0.249029,-0.702789 -0.6613,-1.054188 -1.236816,-1.054199 -0.293299,1.1e-5 -0.542322,0.08855 -0.74707,0.265625 -0.199223,0.177093 -0.362471,0.439951 -0.489746,0.788574 -0.127282,0.348642 -0.218591,0.785816 -0.273926,1.311524 -0.05534,0.52019 -0.08301,1.126146 -0.08301,1.817871"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/5.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/5.png
new file mode 100644
index 0000000..f239fb6
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/5.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/5.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/5.svg
new file mode 100644
index 0000000..82fb03d
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/5.svg
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 16.035597,14.255508 c 0.520177,8e-6 1.004388,0.08025 1.452637,0.240723 0.448235,0.160489 0.838371,0.395678 1.17041,0.705566 0.332023,0.309903 0.592114,0.697272 0.780273,1.16211 0.188143,0.459315 0.282218,0.987797 0.282227,1.585449 -9e-6,0.658532 -0.102385,1.250654 -0.307129,1.776367 -0.204761,0.520184 -0.506356,0.962892 -0.904785,1.328125 -0.398445,0.359701 -0.893724,0.636394 -1.48584,0.830078 -0.586594,0.193685 -1.261724,0.290528 -2.025391,0.290528 -0.304365,0 -0.60596,-0.01384 -0.904785,-0.0415 -0.298831,-0.02767 -0.586591,-0.06917 -0.863281,-0.124512 -0.271161,-0.04981 -0.531252,-0.116211 -0.780274,-0.199219 -0.24349,-0.08301 -0.464844,-0.17985 -0.664062,-0.290527 l 0,-2.216309 c 0.193684,0.11068 0.417805,0.215823 0.672363,0.31543 0.254556,0.09408 0.517414,0.177086 0.788574,0.249024 0.276691,0.06641 0.553383,0.121746 0.830078,0.166015 0.27669,0.03874 0.539548,0.05811 0.788575,0.05811 0.741532,2e-6 1.305984,-0.152179 1.693359,-0.456543 0.387364,-0.309893 0.5810
 49,-0.799639 0.581055,-1.469239 -6e-6,-0.597651 -0.190924,-1.051427 -0.572754,-1.361328 -0.376307,-0.315424 -0.960128,-0.473139 -1.751465,-0.473144 -0.143884,5e-6 -0.298832,0.0083 -0.464844,0.0249 -0.160485,0.01661 -0.320966,0.03874 -0.481445,0.06641 -0.154951,0.02768 -0.304365,0.05811 -0.448242,0.09131 -0.143883,0.02767 -0.268394,0.05811 -0.373535,0.09131 l -1.020996,-0.547852 0.456542,-6.1840821 6.408204,0 0,2.1748051 -4.183594,0 -0.199219,2.382324 c 0.17708,-0.03873 0.381832,-0.07747 0.614258,-0.116211 0.237951,-0.03873 0.542313,-0.0581 0.913086,-0.05811"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/6.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/6.png
new file mode 100644
index 0000000..18866e6
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/6.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/6.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/6.svg
new file mode 100644
index 0000000..e2f62af
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/6.svg
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 11.702589,16.853653 c -10e-7,-0.581049 0.03044,-1.159336 0.09131,-1.734863 0.0664,-0.575514 0.179849,-1.126132 0.340332,-1.651856 0.166014,-0.531241 0.387368,-1.023753 0.664062,-1.477539 0.282225,-0.453765 0.636391,-0.846669 1.0625,-1.178711 0.431638,-0.337553 0.946285,-0.600411 1.543945,-0.788574 0.603186,-0.1936727 1.305984,-0.2905151 2.108399,-0.2905274 0.116204,1.23e-5 0.243483,0.00278 0.381836,0.0083 0.138339,0.00555 0.276685,0.013847 0.415039,0.024902 0.143873,0.00555 0.282219,0.016614 0.415039,0.033203 0.132805,0.016614 0.251782,0.035982 0.356934,0.058105 l 0,2.0502924 c -0.210295,-0.04979 -0.434416,-0.08853 -0.672364,-0.116211 -0.232429,-0.03319 -0.467617,-0.04979 -0.705566,-0.0498 -0.747076,1e-5 -1.361334,0.09408 -1.842774,0.282226 -0.481449,0.182627 -0.863285,0.439951 -1.145507,0.771973 -0.28223,0.33204 -0.484216,0.730477 -0.605957,1.195312 -0.116214,0.464852 -0.188154,0.9795 -0.215821,1.543946 l 0.09961,0 c 0.110674,-0.199212 0.243486,-0.384596 0.39843
 7,-0.556153 0.160478,-0.177076 0.345862,-0.32649 0.556153,-0.448242 0.210282,-0.127271 0.44547,-0.22688 0.705566,-0.298828 0.26562,-0.07193 0.561681,-0.107902 0.888184,-0.10791 0.52571,8e-6 0.998854,0.08578 1.419433,0.257324 0.420566,0.171557 0.774732,0.42058 1.0625,0.74707 0.293286,0.326504 0.517407,0.727708 0.672363,1.203614 0.15494,0.475916 0.232413,1.021 0.232422,1.635254 -9e-6,0.658532 -0.09408,1.247887 -0.282226,1.768066 -0.182626,0.520184 -0.445484,0.962892 -0.788575,1.328125 -0.343106,0.359701 -0.758145,0.636394 -1.245117,0.830078 -0.486985,0.188151 -1.034836,0.282227 -1.643554,0.282227 -0.597661,0 -1.15658,-0.105144 -1.676758,-0.31543 -0.520185,-0.21582 -0.973961,-0.542317 -1.361328,-0.979492 -0.381838,-0.437173 -0.683433,-0.987791 -0.904785,-1.651856 -0.215822,-0.669593 -0.323732,-1.460933 -0.323731,-2.374023 m 4.216797,3.270508 c 0.226883,2e-6 0.431635,-0.0415 0.614258,-0.124512 0.188145,-0.08854 0.348627,-0.218585 0.481445,-0.390137 0.13834,-0.17708 0.243483,-0.3
 98434 0.31543,-0.664062 0.07747,-0.265622 0.116204,-0.581051 0.116211,-0.946289 -7e-6,-0.592118 -0.124518,-1.056961 -0.373535,-1.394531 -0.243496,-0.343094 -0.617031,-0.514643 -1.120606,-0.514649 -0.254562,6e-6 -0.486984,0.04981 -0.697266,0.149414 -0.21029,0.09962 -0.39014,0.229661 -0.53955,0.390137 -0.149418,0.160487 -0.265629,0.340337 -0.348633,0.539551 -0.07748,0.199223 -0.116214,0.401209 -0.116211,0.605957 -3e-6,0.28223 0.0332,0.564456 0.09961,0.846679 0.07194,0.276696 0.17708,0.528486 0.31543,0.755371 0.143876,0.221357 0.318193,0.401207 0.522949,0.539551 0.210282,0.138349 0.453772,0.207522 0.730469,0.20752"
+       id="path2846"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/7.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/7.png
new file mode 100644
index 0000000..52c3a18
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/7.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/7.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/7.svg
new file mode 100644
index 0000000..a43460f
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/7.svg
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 12.789991,22.008438 4.316407,-9.960937 -5.578125,0 0,-2.1582035 8.367187,0 0,1.6103515 -4.424316,10.508789 -2.681153,0"
+       id="path2832"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/8.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/8.png
new file mode 100644
index 0000000..8a8cb21
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/8.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/8.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/8.svg
new file mode 100644
index 0000000..2c82d3f
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/8.svg
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 15.761671,9.7149811 c 0.503576,1.23e-5 0.979487,0.060885 1.427734,0.1826172 0.448236,0.1217567 0.841139,0.3043737 1.178711,0.5478517 0.337558,0.243501 0.60595,0.547862 0.805176,0.913086 0.199211,0.365244 0.29882,0.794118 0.298828,1.286621 -8e-6,0.365243 -0.05535,0.697274 -0.166015,0.996094 -0.110686,0.293302 -0.262866,0.561694 -0.456543,0.805175 -0.193693,0.237963 -0.423348,0.451017 -0.688965,0.639161 -0.265632,0.188157 -0.553392,0.359707 -0.863281,0.514648 0.320957,0.171556 0.633619,0.362473 0.937988,0.572754 0.309888,0.210292 0.583814,0.448247 0.821777,0.713867 0.237948,0.260096 0.428866,0.55339 0.572754,0.879883 0.143872,0.326501 0.215812,0.691735 0.21582,1.095703 -8e-6,0.503583 -0.09962,0.960126 -0.298828,1.369629 -0.199227,0.409506 -0.478686,0.758139 -0.838379,1.045898 -0.359707,0.287761 -0.791348,0.509115 -1.294921,0.664063 -0.498053,0.154948 -1.048671,0.232422 -1.651856,0.232422 -0.652999,0 -1.234053,-0.07471 -1.743164,-0.224121 -0.509117,-0.149414 -0.9379
 9,-0.362467 -1.286621,-0.639161 -0.348634,-0.276691 -0.614259,-0.617023 -0.796875,-1.020996 -0.177084,-0.403969 -0.265626,-0.857744 -0.265625,-1.361328 -10e-7,-0.415035 0.06087,-0.78857 0.182617,-1.120605 0.121744,-0.332027 0.287759,-0.630855 0.498047,-0.896485 0.210285,-0.265619 0.456541,-0.500808 0.73877,-0.705566 0.282224,-0.204747 0.583819,-0.384597 0.904785,-0.539551 -0.271162,-0.171543 -0.525719,-0.356927 -0.763672,-0.556152 -0.237958,-0.204746 -0.445477,-0.428866 -0.622559,-0.672363 -0.171551,-0.249016 -0.309897,-0.522942 -0.415039,-0.821778 -0.09961,-0.298819 -0.149415,-0.628083 -0.149414,-0.987793 -10e-7,-0.481435 0.09961,-0.902008 0.298828,-1.261718 0.204751,-0.365224 0.478677,-0.669585 0.821778,-0.913086 0.343096,-0.249012 0.738766,-0.434396 1.187011,-0.5561527 0.448239,-0.1217326 0.918616,-0.1826049 1.411133,-0.1826172 m -1.718262,9.0644529 c -3e-6,0.221357 0.03597,0.42611 0.107911,0.614258 0.07194,0.18262 0.17708,0.340334 0.315429,0.473145 0.143877,0.132814 0.32
 096,0.237957 0.53125,0.315429 0.210283,0.07194 0.453772,0.107912 0.730469,0.10791 0.581049,2e-6 1.015457,-0.135577 1.303223,-0.406738 0.287754,-0.27669 0.431634,-0.639157 0.43164,-1.087402 -6e-6,-0.232419 -0.04981,-0.439938 -0.149414,-0.622559 -0.09408,-0.188147 -0.218593,-0.359696 -0.373535,-0.514648 -0.14942,-0.160478 -0.320969,-0.307125 -0.514648,-0.439942 -0.19369,-0.132807 -0.387375,-0.260086 -0.581055,-0.381836 L 15.662062,16.72084 c -0.243494,0.12175 -0.464848,0.254563 -0.664063,0.398438 -0.199222,0.138351 -0.370772,0.293299 -0.514648,0.464844 -0.13835,0.16602 -0.24626,0.348637 -0.323731,0.547851 -0.07748,0.199223 -0.116214,0.415043 -0.116211,0.647461 m 1.701661,-7.188476 c -0.182622,10e-6 -0.354171,0.02768 -0.514649,0.08301 -0.154952,0.05535 -0.290531,0.13559 -0.406738,0.240723 -0.110681,0.105153 -0.199223,0.235199 -0.265625,0.390137 -0.06641,0.154957 -0.09961,0.329274 -0.09961,0.522949 -3e-6,0.232431 0.0332,0.434416 0.09961,0.605957 0.07194,0.166024 0.166012,0.31543
 8 0.282226,0.448242 0.121741,0.127287 0.260087,0.243498 0.415039,0.348633 0.160478,0.09962 0.32926,0.199226 0.506348,0.298828 0.171545,-0.08853 0.334793,-0.185376 0.489746,-0.290527 0.154943,-0.105135 0.290522,-0.224113 0.406738,-0.356934 0.12174,-0.138338 0.218582,-0.293286 0.290528,-0.464843 0.07193,-0.171541 0.107904,-0.367993 0.10791,-0.589356 -6e-6,-0.193675 -0.03321,-0.367992 -0.09961,-0.522949 -0.06641,-0.154938 -0.157721,-0.284984 -0.273926,-0.390137 -0.116217,-0.105133 -0.254563,-0.185374 -0.415039,-0.240723 -0.160487,-0.05533 -0.334803,-0.083 -0.522949,-0.08301"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/9.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/9.png
new file mode 100644
index 0000000..0ae412f
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/9.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/9.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/9.svg
new file mode 100644
index 0000000..b0f04c4
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/9.svg
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 19.829054,15.052383 c -9e-6,0.581061 -0.03321,1.162116 -0.09961,1.743164 -0.06088,0.575526 -0.174325,1.126144 -0.340333,1.651856 -0.160489,0.525719 -0.381843,1.018232 -0.664062,1.477539 -0.2767,0.453778 -0.630866,0.846681 -1.0625,1.178711 -0.426113,0.332032 -0.940761,0.59489 -1.543945,0.788574 -0.597661,0.188151 -1.30046,0.282227 -2.108399,0.282227 -0.116214,0 -0.243492,-0.0028 -0.381836,-0.0083 -0.138348,-0.0055 -0.279462,-0.01384 -0.42334,-0.0249 -0.138348,-0.0055 -0.273927,-0.0166 -0.406738,-0.0332 -0.132814,-0.01107 -0.249025,-0.02767 -0.348633,-0.0498 l 0,-2.058594 c 0.204751,0.05534 0.423338,0.09961 0.655762,0.132813 0.237954,0.02767 0.478676,0.04151 0.722168,0.0415 0.747067,2e-6 1.361324,-0.09131 1.842773,-0.273925 0.481441,-0.188149 0.863276,-0.44824 1.145508,-0.780274 0.282221,-0.337562 0.481439,-0.738766 0.597657,-1.203613 0.121738,-0.464839 0.196445,-0.97672 0.224121,-1.535645 l -0.107911,0 c -0.110683,0.199225 -0.243495,0.384609 -0.398437,0.556153 -0.
 154954,0.171554 -0.337571,0.320968 -0.547852,0.448242 -0.210291,0.127283 -0.448247,0.226892 -0.713867,0.298828 -0.265629,0.07194 -0.56169,0.107914 -0.888183,0.10791 -0.52572,4e-6 -0.998864,-0.08577 -1.419434,-0.257324 -0.420575,-0.171545 -0.777508,-0.420568 -1.070801,-0.74707 -0.287761,-0.326492 -0.509115,-0.727696 -0.664062,-1.203614 -0.154949,-0.475904 -0.232423,-1.020988 -0.232422,-1.635253 -10e-7,-0.65852 0.09131,-1.247875 0.273926,-1.768067 0.18815,-0.520172 0.453774,-0.960113 0.796875,-1.319824 0.343097,-0.365223 0.758135,-0.644682 1.245117,-0.838379 0.49251,-0.1936727 1.043127,-0.2905151 1.651855,-0.2905274 0.597651,1.23e-5 1.15657,0.1079224 1.676758,0.3237304 0.520176,0.210298 0.971184,0.534028 1.353027,0.971192 0.381829,0.437185 0.683423,0.990569 0.904786,1.660156 0.221345,0.669605 0.332022,1.458178 0.332031,2.365722 m -4.216797,-3.262207 c -0.226892,1.1e-5 -0.434412,0.04151 -0.622559,0.124512 -0.188154,0.08302 -0.351403,0.213063 -0.489746,0.390137 -0.132815,0.17155
 9 -0.237959,0.392913 -0.315429,0.664062 -0.07194,0.265634 -0.107914,0.581063 -0.107911,0.946289 -3e-6,0.586596 0.124509,1.05144 0.373536,1.394532 0.249019,0.343105 0.625321,0.514654 1.128906,0.514648 0.254552,6e-6 0.486974,-0.0498 0.697266,-0.149414 0.210281,-0.0996 0.390131,-0.229648 0.53955,-0.390137 0.149408,-0.160475 0.262852,-0.340325 0.340332,-0.53955 0.083,-0.199212 0.124506,-0.401197 0.124512,-0.605958 -6e-6,-0.282218 -0.03598,-0.561677 -0.10791,-0.838378 -0.06641,-0.282218 -0.171556,-0.534008 -0.31543,-0.755372 -0.138352,-0.226878 -0.312668,-0.409495 -0.522949,-0.547851 -0.204758,-0.138336 -0.44548,-0.207509 -0.722168,-0.20752"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/bkgrnd_greydots.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/bkgrnd_greydots.png
new file mode 100644
index 0000000..2333a6d
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/bkgrnd_greydots.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/bullet_arrowblue.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/bullet_arrowblue.png
new file mode 100644
index 0000000..c235534
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/bullet_arrowblue.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/documentation.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/documentation.png
new file mode 100644
index 0000000..79d0a80
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/documentation.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/dot.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/dot.png
new file mode 100644
index 0000000..36a6859
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/dot.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/dot2.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/dot2.png
new file mode 100644
index 0000000..40aff92
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/dot2.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/green.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/green.png
new file mode 100644
index 0000000..ebb3c24
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/green.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/h1-bg.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/h1-bg.png
new file mode 100644
index 0000000..a2aad24
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/h1-bg.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/image_left.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/image_left.png
new file mode 100644
index 0000000..e8fe7a4
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/image_left.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/image_right.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/image_right.png
new file mode 100644
index 0000000..5b67443
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/image_right.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/important.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/important.png
new file mode 100644
index 0000000..f7594a3
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/important.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/important.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/important.svg
new file mode 100644
index 0000000..2d33045
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/important.svg
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="48"
+   height="48"
+   id="svg5921"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docname="important.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="/home/jfearn/Build/src/fedora/publican/trunk/publican-fedora/en-US/images/important.png"
+   inkscape:export-xdpi="111.32"
+   inkscape:export-ydpi="111.32">
+  <metadata
+     id="metadata2611">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="681"
+     inkscape:window-width="738"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     showgrid="false"
+     inkscape:zoom="11.5"
+     inkscape:cx="20"
+     inkscape:cy="20"
+     inkscape:window-x="0"
+     inkscape:window-y="51"
+     inkscape:current-layer="svg5921" />
+  <defs
+     id="defs5923">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 20 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="40 : 20 : 1"
+       inkscape:persp3d-origin="20 : 13.333333 : 1"
+       id="perspective2613" />
+  </defs>
+  <g
+     transform="matrix(0.4626799,0,0,0.4626799,-5.2934127,-3.3160376)"
+     id="g5485">
+    <path
+       d="M 29.97756,91.885882 L 55.586992,80.409826 L 81.231619,91.807015 L 78.230933,63.90468 L 96.995009,43.037218 L 69.531053,37.26873 L 55.483259,12.974592 L 41.510292,37.311767 L 14.064204,43.164717 L 32.892392,63.97442 L 29.97756,91.885882 z"
+       id="path6799"
+       style="fill:#f3de82;fill-opacity:1;enable-background:new" />
+    <path
+       d="M 55.536215,56.538729 L 55.48324,12.974601 L 41.51028,37.311813 L 55.536215,56.538729 z"
+       id="path6824"
+       style="opacity:0.91005291;fill:#f9f2cb;fill-opacity:1;enable-background:new" />
+    <path
+       d="M 55.57947,56.614318 L 78.241135,63.937979 L 96.976198,43.044318 L 55.57947,56.614318 z"
+       id="use6833"
+       style="opacity:1;fill:#d0bc64;fill-opacity:1;enable-background:new" />
+    <path
+       d="M 55.523838,56.869126 L 55.667994,80.684281 L 81.379011,91.931065 L 55.523838,56.869126 z"
+       id="use6835"
+       style="opacity:1;fill:#e0c656;fill-opacity:1;enable-background:new" />
+    <path
+       d="M 55.283346,56.742618 L 13.877363,43.200977 L 32.640089,64.069652 L 55.283346,56.742618 z"
+       id="use6831"
+       style="opacity:1;fill:#d1ba59;fill-opacity:1;enable-background:new" />
+    <path
+       d="M 55.472076,56.869126 L 55.32792,80.684281 L 29.616903,91.931065 L 55.472076,56.869126 z"
+       id="use6837"
+       style="opacity:1;fill:#d2b951;fill-opacity:1;enable-background:new" />
+    <path
+       d="M 55.57947,56.614318 L 96.976198,43.044318 L 69.504294,37.314027 L 55.57947,56.614318 z"
+       id="path7073"
+       style="opacity:1;fill:#f6e7a3;fill-opacity:1;enable-background:new" />
+    <path
+       d="M 55.523838,56.869126 L 81.379011,91.931065 L 78.214821,64.046881 L 55.523838,56.869126 z"
+       id="path7075"
+       style="opacity:1;fill:#f6e7a3;fill-opacity:1;enable-background:new" />
+    <path
+       d="M 55.283346,56.742618 L 41.341708,37.434209 L 13.877363,43.200977 L 55.283346,56.742618 z"
+       id="path7077"
+       style="opacity:1;fill:#f6e59d;fill-opacity:1;enable-background:new" />
+    <path
+       d="M 55.472076,56.869126 L 29.616903,91.931065 L 32.781093,64.046881 L 55.472076,56.869126 z"
+       id="path7079"
+       style="opacity:1;fill:#f3df8b;fill-opacity:1;enable-background:new" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/logo.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/logo.png
new file mode 100644
index 0000000..66a3104
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/logo.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/note.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/note.png
new file mode 100644
index 0000000..d6c4518
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/note.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/note.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/note.svg
new file mode 100644
index 0000000..70e43b6
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/note.svg
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="48"
+   height="48"
+   id="svg5921"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docname="note.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="/home/jfearn/Build/src/fedora/publican/trunk/publican-fedora/en-US/images/note.png"
+   inkscape:export-xdpi="111.32"
+   inkscape:export-ydpi="111.32">
+  <metadata
+     id="metadata16">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="1024"
+     inkscape:window-width="1205"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     showgrid="false"
+     inkscape:zoom="11.5"
+     inkscape:cx="22.217181"
+     inkscape:cy="20"
+     inkscape:window-x="334"
+     inkscape:window-y="51"
+     inkscape:current-layer="svg5921" />
+  <defs
+     id="defs5923">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 20 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="40 : 20 : 1"
+       inkscape:persp3d-origin="20 : 13.333333 : 1"
+       id="perspective18" />
+  </defs>
+  <g
+     transform="matrix(0.468275,0,0,0.468275,-5.7626904,-7.4142703)"
+     id="layer1">
+    <g
+       transform="matrix(0.115136,0,0,0.115136,9.7283,21.77356)"
+       id="g8014"
+       style="enable-background:new">
+      <g
+         id="g8518"
+         style="opacity:1">
+        <path
+           d="M -2512.4524,56.33197 L 3090.4719,56.33197 L 3090.4719,4607.3813 L -2512.4524,4607.3813 L -2512.4524,56.33197 z"
+           transform="matrix(0.1104659,-2.3734892e-2,2.2163258e-2,0.1031513,308.46782,74.820675)"
+           id="rect8018"
+           style="fill:#ffe680;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.1;stroke-linecap:butt;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
+      </g>
+      <g
+         transform="matrix(0.5141653,-7.1944682e-2,7.1944682e-2,0.5141653,146.04015,-82.639785)"
+         id="g8020">
+        <path
+           d="M 511.14114,441.25315 C 527.3248,533.52772 464.31248,622.82928 370.39916,640.71378 C 276.48584,658.59828 187.23462,598.29322 171.05095,506.01865 C 154.86728,413.74408 217.8796,324.44253 311.79292,306.55803 C 405.70624,288.67353 494.95747,348.97858 511.14114,441.25315 z"
+           id="path8022"
+           style="opacity:1;fill:#e0c96f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.0804934;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <path
+           d="M 527.8214,393.1416 C 527.8214,461.31268 472.55783,516.57625 404.38675,516.57625 C 336.21567,516.57625 280.9521,461.31268 280.9521,393.1416 C 280.9521,324.97052 336.21567,269.70695 404.38675,269.70695 C 472.55783,269.70695 527.8214,324.97052 527.8214,393.1416 z"
+           transform="matrix(1.2585415,-0.2300055,0.2168789,1.1867072,-248.76141,68.254424)"
+           id="path8024"
+           style="opacity:1;fill:#c00000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.0804934;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <path
+           d="M 358.5625,281.15625 C 348.09597,281.05155 337.43773,281.94729 326.71875,283.90625 C 240.96686,299.57789 183.37901,377.92385 198.15625,458.78125 C 209.70749,521.98673 262.12957,567.92122 325.40625,577.5625 L 357.25,433.6875 L 509.34375,405.875 C 509.14405,404.58166 509.0804,403.29487 508.84375,402 C 495.91366,331.24978 431.82821,281.88918 358.5625,281.15625 z"
+           id="path8026"
+           style="opacity:1;fill:#b60000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.1;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <path
+           d="M 294.2107,361.9442 L 282.79367,370.38482 L 261.73414,386.13346 C 253.13706,404.40842 254.3359,423.7989 259.7176,444.39774 C 273.6797,497.83861 313.42636,523.96124 369.50989,517.58957 C 398.21848,514.32797 424.51832,504.67345 440.64696,484.15958 L 469.89512,447.48298 L 294.2107,361.9442 z"
+           id="path8028"
+           style="fill:#750000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.09999999;stroke-linecap:butt;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
+        <path
+           d="M 527.8214,393.1416 C 527.8214,461.31268 472.55783,516.57625 404.38675,516.57625 C 336.21567,516.57625 280.9521,461.31268 280.9521,393.1416 C 280.9521,324.97052 336.21567,269.70695 404.38675,269.70695 C 472.55783,269.70695 527.8214,324.97052 527.8214,393.1416 z"
+           transform="matrix(0.9837071,-0.1797787,0.1695165,0.9275553,-78.013985,79.234385)"
+           id="path8030"
+           style="opacity:1;fill:#d40000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.10298239;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <path
+           d="M 527.8214,393.1416 C 527.8214,461.31268 472.55783,516.57625 404.38675,516.57625 C 336.21567,516.57625 280.9521,461.31268 280.9521,393.1416 C 280.9521,324.97052 336.21567,269.70695 404.38675,269.70695 C 472.55783,269.70695 527.8214,324.97052 527.8214,393.1416 z"
+           transform="matrix(0.9837071,-0.1797787,0.1695165,0.9275553,-69.306684,71.273294)"
+           id="path8032"
+           style="opacity:1;fill:#e11212;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.10298239;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      </g>
+    </g>
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/red.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/red.png
new file mode 100644
index 0000000..d32d5e2
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/red.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/shade.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/shade.png
new file mode 100644
index 0000000..a73afdf
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/shade.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/shine.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/shine.png
new file mode 100644
index 0000000..a18f7c4
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/shine.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/stock-go-back.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/stock-go-back.png
new file mode 100644
index 0000000..d320f26
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/stock-go-back.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/stock-go-forward.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/stock-go-forward.png
new file mode 100644
index 0000000..1ee5a29
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/stock-go-forward.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/stock-go-up.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/stock-go-up.png
new file mode 100644
index 0000000..1cd7332
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/stock-go-up.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/stock-home.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/stock-home.png
new file mode 100644
index 0000000..122536d
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/stock-home.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/title_logo.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/title_logo.png
new file mode 100644
index 0000000..d5182b4
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/title_logo.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/title_logo.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/title_logo.svg
new file mode 100644
index 0000000..e8fd52b
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/title_logo.svg
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="220"
+   height="70"
+   id="svg6180">
+  <defs
+     id="defs6182" />
+  <g
+     transform="translate(-266.55899,-345.34488)"
+     id="layer1">
+    <path
+       d="m 316.7736,397.581 c 0,0 0,0 -20.53889,0 0.3327,4.45245 3.92157,7.77609 8.70715,7.77609 3.38983,0 6.31456,-1.39616 8.64094,-3.65507 0.46553,-0.46679 0.99726,-0.59962 1.59519,-0.59962 0.79781,0 1.59561,0.39932 2.12692,1.06388 0.3327,0.46553 0.53216,0.99726 0.53216,1.52857 0,0.73118 -0.3327,1.52857 -0.93106,2.12734 -2.7919,2.99052 -7.51086,4.98503 -12.16403,4.98503 -8.44149,0 -15.22074,-6.77967 -15.22074,-15.22158 0,-8.44149 6.58022,-15.22074 15.02171,-15.22074 8.37529,0 14.62323,6.51317 14.62323,15.08749 0,1.26418 -1.12924,2.12861 -2.39258,2.12861 z m -12.23065,-11.76512 c -4.45329,0 -7.51085,2.92473 -8.17499,7.17731 10.03626,0 16.35083,0 16.35083,0 -0.59836,-4.05355 -3.78874,-7.17731 -8.17584,-7.17731 z"
+       id="path11"
+       style="fill:#3c6eb4" />
+    <path
+       d="m 375.46344,410.80807 c -8.44106,0 -15.22074,-6.77968 -15.22074,-15.22159 0,-8.44149 6.77968,-15.22074 15.22074,-15.22074 8.44234,0 15.22159,6.77925 15.22159,15.22074 -4.2e-4,8.44149 -6.77968,15.22159 -15.22159,15.22159 z m 0,-24.65992 c -5.31688,0 -8.77377,4.25427 -8.77377,9.43833 0,5.18364 3.45689,9.43833 8.77377,9.43833 5.31731,0 8.77504,-4.25469 8.77504,-9.43833 -4.2e-4,-5.18406 -3.45773,-9.43833 -8.77504,-9.43833 z"
+       id="path13"
+       style="fill:#3c6eb4" />
+    <path
+       d="m 412.66183,380.36574 c -4.45963,0 -7.40966,1.319 -10.01391,4.62956 l -0.24036,-1.53995 0,0 c -0.20198,-1.60743 -1.57326,-2.84926 -3.23382,-2.84926 -1.80139,0 -3.26206,1.459 -3.26206,3.26081 0,0.003 0,0.005 0,0.008 l 0,0 0,0.003 0,0 0,23.40712 c 0,1.79464 1.46194,3.25743 3.257,3.25743 1.79465,0 3.25744,-1.46279 3.25744,-3.25743 l 0,-12.56209 c 0,-5.71621 4.98502,-8.57432 10.23613,-8.57432 1.59519,0 2.85726,-1.32953 2.85726,-2.92515 0,-1.59561 -1.26207,-2.85726 -2.85768,-2.85726 z"
+       id="path15"
+       style="fill:#3c6eb4" />
+    <path
+       d="m 447.02614,395.58648 c 0.0666,-8.17541 -5.78326,-15.22074 -15.222,-15.22074 -8.44192,0 -15.28779,6.77925 -15.28779,15.22074 0,8.44191 6.64684,15.22159 14.68985,15.22159 4.01434,0 7.62682,-2.06621 9.23846,-4.22518 l 0.79359,2.01434 0,0 c 0.42589,1.13177 1.5176,1.93717 2.7978,1.93717 1.65001,0 2.98756,-1.33671 2.99009,-2.98545 l 0,0 0,-7.80687 0,0 0,-4.1556 z m -15.222,9.43833 c -5.31773,0 -8.77419,-4.25469 -8.77419,-9.43833 0,-5.18406 3.45604,-9.43833 8.77419,-9.43833 5.3173,0 8.77419,4.25427 8.77419,9.43833 0,5.18364 -3.45689,9.43833 -8.77419,9.43833 z"
+       id="path17"
+       style="fill:#3c6eb4" />
+    <path
+       d="m 355.01479,368.3337 c 0,-1.7938 -1.46194,-3.18997 -3.25659,-3.18997 -1.79422,0 -3.25743,1.39659 -3.25743,3.18997 l 0,17.1499 c -1.66097,-3.05756 -5.25026,-5.11786 -9.50495,-5.11786 -8.64052,0 -14.42336,6.51318 -14.42336,15.22074 0,8.70757 5.98229,15.22159 14.42336,15.22159 3.76555,0 7.03057,-1.55429 8.98587,-4.25554 l 0.72317,1.83428 c 0.44782,1.25912 1.64917,2.16024 3.06051,2.16024 1.78621,0 3.24984,-1.45435 3.24984,-3.24815 0,-0.005 0,-0.009 0,-0.0139 l 0,0 0,-38.95128 -4.2e-4,0 z m -15.22116,36.69111 c -5.31731,0 -8.70715,-4.25469 -8.70715,-9.43833 0,-5.18406 3.38984,-9.43833 8.70715,-9.43833 5.31773,0 8.70714,4.0544 8.70714,9.43833 0,5.38309 -3.38941,9.43833 -8.70714,9.43833 z"
+       id="path19"
+       style="fill:#3c6eb4" />
+    <path
+       d="m 287.21553,365.34023 c -0.59414,-0.0877 -1.19966,-0.13198 -1.80097,-0.13198 -6.73118,0 -12.20746,5.4767 -12.20746,12.20788 l 0,3.8132 -3.98903,0 c -1.46237,0 -2.65908,1.19671 -2.65908,2.65781 0,1.46321 1.19671,2.93738 2.65908,2.93738 l 3.98819,0 0,20.46004 c 0,1.79464 1.46236,3.25743 3.25658,3.25743 1.79507,0 3.25744,-1.46279 3.25744,-3.25743 l 0,-20.46004 4.40986,0 c 1.46194,0 2.65823,-1.47417 2.65823,-2.93738 0,-1.46152 -1.19629,-2.65823 -2.65823,-2.65823 l -4.40733,0 0,-3.8132 c 0,-3.13852 2.55323,-6.11469 5.69175,-6.11469 0.28294,0 0.56757,0.0211 0.84672,0.062 1.78031,0.26355 3.4358,-0.54269 3.70019,-2.32342 0.2627,-1.77904 -0.96606,-3.43538 -2.74594,-3.69935 z"
+       id="path21"
+       style="fill:#3c6eb4" />
+    <path
+       d="m 482.01243,363.57426 c 0,-10.06788 -8.16108,-18.22938 -18.22897,-18.22938 -10.06282,0 -18.22179,8.15475 -18.22854,18.21631 l -4.2e-4,-4.2e-4 0,14.1071 4.2e-4,4.2e-4 c 0.005,2.28463 1.85832,4.13409 4.14463,4.13409 0.007,0 0.0127,-8.4e-4 0.0194,-8.4e-4 l 0.001,8.4e-4 14.07083,0 0,0 c 10.06409,-0.004 18.22138,-8.16276 18.22138,-18.22812 z"
+       id="path25"
+       style="fill:#294172" />
+    <path
+       d="m 469.13577,349.66577 c -4.72528,0 -8.55576,3.83049 -8.55576,8.55577 0,0.002 0,0.004 0,0.006 l 0,4.52836 -4.51444,0 c -8.5e-4,0 -8.5e-4,0 -0.001,0 -4.72528,0 -8.55576,3.81193 -8.55576,8.53678 0,4.72528 3.83048,8.55577 8.55576,8.55577 4.72486,0 8.55534,-3.83049 8.55534,-8.55577 0,-0.002 0,-0.004 0,-0.006 l 0,-4.54733 4.51444,0 c 8.5e-4,0 0.001,0 0.002,0 4.72486,0 8.55534,-3.79296 8.55534,-8.51781 0,-4.72528 -3.83048,-8.55577 -8.55534,-8.55577 z m -8.55576,21.63483 c -0.004,2.48998 -2.02446,4.50811 -4.51571,4.50811 -2.49378,0 -4.53426,-2.02193 -4.53426,-4.5157 0,-2.49421 2.04048,-4.55366 4.53426,-4.55366 0.002,0 0.004,4.2e-4 0.006,4.2e-4 l 3.86971,0 c 0.001,0 0.002,-4.2e-4 0.003,-4.2e-4 0.35209,0 0.63799,0.28505 0.63799,0.63715 0,4.2e-4 -4.2e-4,8.4e-4 -4.2e-4,0.001 l 0,3.92284 -4.2e-4,0 z m 8.55534,-8.5448 c -0.001,0 -0.003,0 -0.004,0 l -3.87223,0 c -8.4e-4,0 -0.002,0 -0.002,0 -0.35252,0 -0.63757,-0.28506 -0.63757,-0.63758 l 0,-4.2e-4 0,-3.90343 c 0.004,-2.49083 2.02
 446,-4.50854 4.51571,-4.50854 2.49378,0 4.53468,2.02193 4.53468,4.51613 4.2e-4,2.49336 -2.04048,4.53384 -4.53426,4.53384 z"
+       id="path29"
+       style="fill:#3c6eb4" />
+    <path
+       d="m 460.58001,362.7558 0,-4.52836 c 0,-0.002 0,-0.004 0,-0.006 0,-4.72528 3.83048,-8.55577 8.55576,-8.55577 0.71685,0 1.22623,0.0805 1.88952,0.25469 0.96774,0.25385 1.75796,1.04618 1.75838,1.96922 4.2e-4,1.11575 -0.80919,1.92621 -2.0194,1.92621 -0.57642,0 -0.78473,-0.11048 -1.62892,-0.11048 -2.49125,0 -4.51149,2.01771 -4.51571,4.50854 l 0,3.90385 0,4.2e-4 c 0,0.35252 0.28505,0.63758 0.63757,0.63758 4.3e-4,0 0.001,0 0.002,0 l 2.96521,0 c 1.10521,0 1.99747,0.88467 1.99832,1.99283 0,1.10816 -0.89353,1.99114 -1.99832,1.99114 l -3.60489,0 0,4.54733 c 0,0.002 0,0.004 0,0.006 0,4.72485 -3.83048,8.55534 -8.55534,8.55534 -0.71684,0 -1.22623,-0.0805 -1.88952,-0.25469 -0.96774,-0.25343 -1.75838,-1.04618 -1.7588,-1.9688 0,-1.11575 0.80919,-1.92663 2.01982,-1.92663 0.576,0 0.78473,0.11048 1.6285,0.11048 2.49125,0 4.51191,-2.01771 4.51613,-4.50811 0,0 0,-3.92368 0,-3.9241 0,-0.35168 -0.2859,-0.63673 -0.63799,-0.63673 -4.3e-4,0 -8.5e-4,0 -0.002,0 l -2.96521,-4.2e-4 c -1.10521,0 -1.
 99831,-0.88214 -1.99831,-1.9903 -4.3e-4,-1.11533 0.90238,-1.99367 2.01939,-1.99367 l 3.58339,0 0,0 z"
+       id="path31"
+       style="fill:#ffffff" />
+    <path
+       d="m 477.41661,378.55292 2.81558,0 0,0.37898 -1.18152,0 0,2.94935 -0.45254,0 0,-2.94935 -1.18152,0 0,-0.37898 m 3.26144,0 0.67101,0 0.84937,2.26496 0.85381,-2.26496 0.67102,0 0,3.32833 -0.43917,0 0,-2.9226 -0.85828,2.28279 -0.45255,0 -0.85827,-2.28279 0,2.9226 -0.43694,0 0,-3.32833"
+       id="text6223"
+       style="fill:#294172;enable-background:new" />
+  </g>
+  <path
+     d="m 181.98344,61.675273 2.81558,0 0,0.37898 -1.18152,0 0,2.94935 -0.45254,0 0,-2.94935 -1.18152,0 0,-0.37898 m 3.26144,0 0.67101,0 0.84937,2.26496 0.85381,-2.26496 0.67102,0 0,3.32833 -0.43917,0 0,-2.9226 -0.85828,2.28279 -0.45255,0 -0.85827,-2.28279 0,2.9226 -0.43694,0 0,-3.32833"
+     id="path2391"
+     style="fill:#294172;enable-background:new" />
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/warning.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/warning.png
new file mode 100644
index 0000000..ce09951
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/warning.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/warning.svg b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/warning.svg
new file mode 100644
index 0000000..5f2612c
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/warning.svg
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="48"
+   height="48"
+   id="svg5921"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docname="warning.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="/home/jfearn/Build/src/fedora/publican/trunk/publican-fedora/en-US/images/warning.png"
+   inkscape:export-xdpi="111.32"
+   inkscape:export-ydpi="111.32">
+  <metadata
+     id="metadata2482">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="910"
+     inkscape:window-width="1284"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     showgrid="false"
+     inkscape:zoom="11.5"
+     inkscape:cx="20"
+     inkscape:cy="20"
+     inkscape:window-x="0"
+     inkscape:window-y="51"
+     inkscape:current-layer="svg5921" />
+  <defs
+     id="defs5923">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 20 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="40 : 20 : 1"
+       inkscape:persp3d-origin="20 : 13.333333 : 1"
+       id="perspective2484" />
+  </defs>
+  <g
+     transform="matrix(0.4536635,0,0,0.4536635,-5.1836431,-4.6889387)"
+     id="layer1">
+    <g
+       transform="translate(2745.6887,-1555.5977)"
+       id="g8304"
+       style="enable-background:new">
+      <path
+         d="M -1603,1054.4387 L -1577.0919,1027.891 L -1540,1027.4387 L -1513.4523,1053.3468 L -1513,1090.4387 L -1538.9081,1116.9864 L -1576,1117.4387 L -1602.5477,1091.5306 L -1603,1054.4387 z"
+         transform="matrix(0.8233528,8.9983906e-3,-8.9983906e-3,0.8233528,-1398.5561,740.7914)"
+         id="path8034"
+         style="opacity:1;fill:#efd259;fill-opacity:1;stroke:#efd259;stroke-opacity:1" />
+      <path
+         d="M -1603,1054.4387 L -1577.0919,1027.891 L -1540,1027.4387 L -1513.4523,1053.3468 L -1513,1090.4387 L -1538.9081,1116.9864 L -1576,1117.4387 L -1602.5477,1091.5306 L -1603,1054.4387 z"
+         transform="matrix(0.6467652,7.0684723e-3,-7.0684723e-3,0.6467652,-1675.7492,927.16391)"
+         id="path8036"
+         style="opacity:1;fill:#a42324;fill-opacity:1;stroke:#a42324;stroke-opacity:1" />
+      <path
+         d="M -2686.7886,1597.753 C -2686.627,1596.5292 -2686.5462,1595.6987 -2686.5462,1595.218 C -2686.5462,1593.1637 -2688.0814,1592.0711 -2690.9899,1592.0711 C -2693.8985,1592.0711 -2695.4336,1593.12 -2695.4336,1595.218 C -2695.4336,1595.961 -2695.3528,1596.7914 -2695.1912,1597.753 L -2692.929,1614.4491 L -2689.0508,1614.4491 L -2686.7886,1597.753"
+         id="path8038"
+         style="font-size:107.13574219px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Charter" />
+      <path
+         d="M -2690.9899,1617.8197 C -2693.6124,1617.8197 -2695.8118,1619.9346 -2695.8118,1622.6416 C -2695.8118,1625.3486 -2693.6124,1627.4635 -2690.9899,1627.4635 C -2688.2829,1627.4635 -2686.168,1625.264 -2686.168,1622.6416 C -2686.168,1619.9346 -2688.2829,1617.8197 -2690.9899,1617.8197"
+         id="path8040"
+         style="font-size:107.13574219px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Charter" />
+    </g>
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/watermark-draft.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/watermark-draft.png
new file mode 100644
index 0000000..0ead5af
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/watermark-draft.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/yellow.png b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/yellow.png
new file mode 100644
index 0000000..223865d
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/Common_Content/images/yellow.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/index.html b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/index.html
new file mode 100644
index 0000000..7921e89
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html-single/Defensive_Coding/index.html
@@ -0,0 +1,1951 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Defensive Coding</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><meta name="description" content="This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations." /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><div xml:lang="en-US" class="book" id="idm45858624" lang="en-US"><div class="titlepage"><div><div class="producttitle" font-family="sans-serif,Symbol,ZapfDingbats" font-weight="bold" font-size="12pt" text-align="center"><span class="productname">Fedora Security Team</span> <span class="productnumber"></span></div><div font-family="sans-serif,Symbol,ZapfDingbats" font-weight="bold" font-size="12pt" text-align="center"><h1 id="idm45858624" class="title">Defensive Coding</
 h1></div><div font-family="sans-serif,Symbol,ZapfDingbats" font-weight="bold" font-size="12pt" text-align="center"><h2 class="subtitle">A Guide to Improving Software Security</h2></div><p class="edition">Edition 1</p><div font-family="sans-serif,Symbol,ZapfDingbats" font-weight="bold" font-size="12pt" text-align="center"><h3 class="corpauthor">
+		<span class="inlinemediaobject"><object data="Common_Content/images/redhat-logo.svg" type="image/svg+xml"> </object></span>
+
+	</h3></div><div font-family="sans-serif,Symbol,ZapfDingbats" font-weight="bold" font-size="12pt" text-align="center"><div xml:lang="en-US" class="authorgroup" lang="en-US"><div class="author"><h3 class="author"><span class="firstname">Florian</span> <span class="surname">Weimer</span></h3><div class="affiliation"><span class="orgname">Red Hat</span> <span class="orgdiv">Product Security Team</span></div><code class="email"><a class="email" href="mailto:fweimer at redhat.com">fweimer at redhat.com</a></code></div></div></div><hr /><div font-family="sans-serif,Symbol,ZapfDingbats" font-weight="bold" font-size="12pt" text-align="center"><div id="idm61853296" class="legalnotice"><h1 class="legalnotice">Legal Notice</h1><div class="para">
+		Copyright <span class="trademark"></span>© 2012 Red Hat, Inc.
+	</div><div class="para">
+		The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at <a href="http://creativecommons.org/licenses/by-sa/3.0/">http://creativecommons.org/licenses/by-sa/3.0/</a>. The original authors of this document, and Red Hat, designate the Fedora Project as the "Attribution Party" for purposes of CC-BY-SA. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
+	</div><div class="para">
+		Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
+	</div><div class="para">
+		Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
+	</div><div class="para">
+		For guidelines on the permitted uses of the Fedora trademarks, refer to <a href="https://fedoraproject.org/wiki/Legal:Trademark_guidelines">https://fedoraproject.org/wiki/Legal:Trademark_guidelines</a>.
+	</div><div class="para">
+		<span class="trademark">Linux</span>® is the registered trademark of Linus Torvalds in the United States and other countries.
+	</div><div class="para">
+		<span class="trademark">Java</span>® is a registered trademark of Oracle and/or its affiliates.
+	</div><div class="para">
+		<span class="trademark">XFS</span>® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
+	</div><div class="para">
+		<span class="trademark">MySQL</span>® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
+	</div><div class="para">
+		All other trademarks are the property of their respective owners.
+	</div></div></div><div font-family="sans-serif,Symbol,ZapfDingbats" font-weight="bold" font-size="12pt" text-align="center"><div class="abstract"><h6>Abstract</h6><div class="para">
+			This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.
+		</div></div></div></div><hr /></div><div class="toc"><dl><dt><span class="part"><a href="#idm44503232">I. Programming Languages</a></span></dt><dd><dl><dt><span class="chapter"><a href="#chap-Defensive_Coding-C">1. The C Programming Language</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Defensive_Coding-C-Language">1.1. The core language</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Defensive_Coding-C-Undefined">1.1.1. Undefined behavior</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-C-Pointers">1.1.2. Recommendations for pointers and array handling</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-C-Arithmetic">1.1.3. Recommendations for integer arithmetic</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Defensive_Coding-C-Libc">1.2. The C standard library</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Defensive_Coding-C-Absolutely-Banned">1.2.1. Absolute
 ly banned interfaces</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-C-Avoid">1.2.2. Functions to avoid</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-C-String-Functions-Length">1.2.3. String Functions With Explicit Length Arguments</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Defensive_Coding-C-Allocators">1.3. Memory allocators</a></span></dt><dd><dl><dt><span class="section"><a href="#idm73731536">1.3.1. <code class="function">malloc</code> and related functions</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-C-Allocators-alloca">1.3.2. <code class="function">alloca</code> and other forms of stack-based allocation</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-C-Allocators-Arrays">1.3.3. Array allocation</a></span></dt><dt><span class="section"><a href="#idm91441792">1.3.4. Custom memory allocators</a></span></dt><dt><span class="section"><a href="#id
 m86254288">1.3.5. Conservative garbage collection</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#chap-Defensive_Coding-CXX">2. The C++ Programming Language</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Defensive_Coding-CXX-Language">2.1. The core language</a></span></dt><dd><dl><dt><span class="section"><a href="#idm94687744">2.1.1. Array allocation with <code class="literal">operator new[]</code></a></span></dt><dt><span class="section"><a href="#idm118459552">2.1.2. Overloading</a></span></dt><dt><span class="section"><a href="#idm44639280">2.1.3. ABI compatibility and preparing for security updates</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-CXX-Language-CXX11">2.1.4. C++0X and C++11 support</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Defensive_Coding-CXX-Std">2.2. The C++ standard library</a></span></dt><dd><dl><dt><span class="section"><a href="#idm46055760">2.2.1. Containers an
 d <code class="literal">operator[]</code></a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#chap-Defensive_Coding-Python">3. The Python Programming Language</a></span></dt><dd><dl><dt><span class="section"><a href="#idm50665744">3.1. Dangerous standard library features</a></span></dt><dt><span class="section"><a href="#idm94056128">3.2. Run-time compilation and code generation</a></span></dt><dt><span class="section"><a href="#idm80392592">3.3. Sandboxing</a></span></dt></dl></dd></dl></dd><dt><span class="part"><a href="#idm44500384">II. Specific Programming Tasks</a></span></dt><dd><dl><dt><span class="chapter"><a href="#chap-Defensive_Coding-Tasks-Library_Design">4. Library Design</a></span></dt><dd><dl><dt><span class="section"><a href="#idm7200176">4.1. State management</a></span></dt><dd><dl><dt><span class="section"><a href="#idm48360352">4.1.1. Global state</a></span></dt><dt><span class="section"><a href="#idm49681472">4.1.2. Handles</a></span><
 /dt></dl></dd><dt><span class="section"><a href="#idm34211280">4.2. Object orientation</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Library_Design-Callbacks">4.3. Callbacks</a></span></dt><dt><span class="section"><a href="#idm63633888">4.4. Process attributes</a></span></dt></dl></dd><dt><span class="chapter"><a href="#sect-Defensive_Coding-Tasks-Descriptors">5. File Descriptor Management</a></span></dt><dd><dl><dt><span class="section"><a href="#idm40898320">5.1. Closing descriptors</a></span></dt><dd><dl><dt><span class="section"><a href="#idm81363664">5.1.1. Error handling during descriptor close</a></span></dt><dt><span class="section"><a href="#idm61020000">5.1.2. Closing descriptors and race conditions</a></span></dt><dt><span class="section"><a href="#idm56381840">5.1.3. Lingering state after close</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Descriptors-Child_Processes">5.2. Preventing fil
 e descriptor leaks to child processes</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Descriptors-Limit">5.3. Dealing with the <code class="function">select</code> limit</a></span></dt></dl></dd><dt><span class="chapter"><a href="#chap-Defensive_Coding-Tasks-File_System">6. File system manipulation</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-File_System-Unowned">6.1. Working with files and directories owned by other users</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-File_System-Foreign">6.2. Accessing the file system as a different user</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-File_System-Limits">6.3. File system limits</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-File_System-Features">6.4. File system features</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-File_Syst
 em-Free_Space">6.5. Checking free space</a></span></dt></dl></dd><dt><span class="chapter"><a href="#chap-Defensive_Coding-Tasks-Temporary_Files">7. Temporary files</a></span></dt><dd><dl><dt><span class="section"><a href="#chap-Defensive_Coding-Tasks-Temporary_Files-Location">7.1. Obtaining the location of temporary directory</a></span></dt><dt><span class="section"><a href="#idm51805696">7.2. Named temporary files</a></span></dt><dt><span class="section"><a href="#idm96363904">7.3. Temporary files without names</a></span></dt><dt><span class="section"><a href="#chap-Defensive_Coding-Tasks-Temporary_Directory">7.4. Temporary directories</a></span></dt><dt><span class="section"><a href="#idm77045280">7.5. Compensating for unsafe file creation</a></span></dt></dl></dd><dt><span class="chapter"><a href="#sect-Defensive_Coding-Tasks-Processes">8. Processes</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Processes-Creation">8.1. Safe proces
 s creation</a></span></dt><dd><dl><dt><span class="section"><a href="#idm76324400">8.1.1. Obtaining the program path and the command line template</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Processes-execve">8.1.2. Bypassing the shell</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Processes-environ">8.1.3. Specifying the process environment</a></span></dt><dt><span class="section"><a href="#idm68155968">8.1.4. Robust argument list processing</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Processes-Command_Line_Visibility">8.1.5. Passing secrets to subprocesses</a></span></dt></dl></dd><dt><span class="section"><a href="#idm82943808">8.2. Handling child process termination</a></span></dt><dt><span class="section"><a href="#idm41161392">8.3. <code class="literal">SUID</code>/<code class="literal">SGID</code> processes</a></span></dt><dd><dl><dt><span class="section"><a href="#se
 ct-Defensive_Coding-Tasks-secure_getenv">8.3.1. Accessing environment variables</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Processes-Daemons">8.4. Daemons</a></span></dt><dt><span class="section"><a href="#idm51054224">8.5. Semantics of command line arguments</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Processes-Fork-Parallel">8.6. <code class="function">fork</code> as a primitive for parallelism</a></span></dt></dl></dd><dt><span class="chapter"><a href="#chap-Defensive_Coding-Tasks-Serialization">9. Serialization and Deserialization</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Serialization-Decoders">9.1. Recommendations for manually written decoders</a></span></dt><dt><span class="section"><a href="#idm34915552">9.2. Protocol design</a></span></dt><dt><span class="section"><a href="#idm61055792">9.3. Library support for deserialization</a></span></dt>
 <dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Serialization-XML">9.4. XML serialization</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Serialization-XML-External">9.4.1. External references</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Serialization-XML-Entities">9.4.2. Entity expansion</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Serialization-XML-XInclude">9.4.3. XInclude processing</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Serialization-XML-Validation">9.4.4. Algorithmic complexity of XML validation</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Serialization-XML-Expat">9.4.5. Using Expat for XML parsing</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse">9.4.6. Using OpenJDK for XML parsing and validation</a></span></dt><
 /dl></dd><dt><span class="section"><a href="#idm69258384">9.5. Protocol Encoders</a></span></dt></dl></dd><dt><span class="chapter"><a href="#chap-Defensive_Coding-Tasks-Cryptography">10. Cryptography</a></span></dt><dd><dl><dt><span class="section"><a href="#idm67720016">10.1. Primitives</a></span></dt><dt><span class="section"><a href="#idm71876736">10.2. Randomness</a></span></dt></dl></dd></dl></dd><dt><span class="part"><a href="#idm70793376">III. Implementing Security Features</a></span></dt><dd><dl><dt><span class="chapter"><a href="#chap-Defensive_Coding-Authentication">11. Authentication and Authorization</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Defensive_Coding-Authentication-Server">11.1. Authenticating servers</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Authentication-Host_based">11.2. Host-based authentication</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Authentication-UNIX_Domain">1
 1.3. UNIX domain socket authentication</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Authentication-Netlink">11.4. <code class="literal">AF_NETLINK</code> authentication of origin</a></span></dt></dl></dd><dt><span class="chapter"><a href="#chap-Defensive_Coding-TLS">12. Transport Layer Security</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Defensive_Coding-TLS-Pitfalls">12.1. Common Pitfalls</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Defensive_Coding-TLS-OpenSSL">12.1.1. OpenSSL Pitfalls</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-TLS-Pitfalls-GNUTLS">12.1.2. GNUTLS Pitfalls</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-TLS-Pitfalls-OpenJDK">12.1.3. OpenJDK Pitfalls</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-TLS-Pitfalls-NSS">12.1.4. NSS Pitfalls</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Defensive_Cod
 ing-TLS-Client">12.2. TLS Clients</a></span></dt><dd><dl><dt><span class="section"><a href="#idm45877184">12.2.1. Implementation TLS Clients With OpenSSL</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-TLS-Client-GNUTLS">12.2.2. Implementation TLS Clients With GNUTLS</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-TLS-Client-OpenJDK">12.2.3. Implementing TLS Clients With OpenJDK</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-TLS-Client-NSS">12.2.4. Implementing TLS Clients With NSS</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-TLS-Client-Python">12.2.5. Implementing TLS Clients With Python</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="appendix"><a href="#appe-UEFI_Secure_Boot_Guide-Revision_History">A. Revision History</a></span></dt></dl></div><div class="part" id="idm44503232"><div class="titlepage"><div><div text-align="center"><h1 class="title">Part I.Â
  Programming Languages</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="chapter"><a href="#chap-Defensive_Coding-C">1. The C Programming Language</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Defensive_Coding-C-Language">1.1. The core language</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Defensive_Coding-C-Undefined">1.1.1. Undefined behavior</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-C-Pointers">1.1.2. Recommendations for pointers and array handling</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-C-Arithmetic">1.1.3. Recommendations for integer arithmetic</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Defensive_Coding-C-Libc">1.2. The C standard library</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Defensive_Coding-C-Absolutely-Banned">1.2.1. Absolutely banned interfaces</a></span></dt><dt><span 
 class="section"><a href="#sect-Defensive_Coding-C-Avoid">1.2.2. Functions to avoid</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-C-String-Functions-Length">1.2.3. String Functions With Explicit Length Arguments</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Defensive_Coding-C-Allocators">1.3. Memory allocators</a></span></dt><dd><dl><dt><span class="section"><a href="#idm73731536">1.3.1. <code class="function">malloc</code> and related functions</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-C-Allocators-alloca">1.3.2. <code class="function">alloca</code> and other forms of stack-based allocation</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-C-Allocators-Arrays">1.3.3. Array allocation</a></span></dt><dt><span class="section"><a href="#idm91441792">1.3.4. Custom memory allocators</a></span></dt><dt><span class="section"><a href="#idm86254288">1.3.5. Conservative garbage collect
 ion</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#chap-Defensive_Coding-CXX">2. The C++ Programming Language</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Defensive_Coding-CXX-Language">2.1. The core language</a></span></dt><dd><dl><dt><span class="section"><a href="#idm94687744">2.1.1. Array allocation with <code class="literal">operator new[]</code></a></span></dt><dt><span class="section"><a href="#idm118459552">2.1.2. Overloading</a></span></dt><dt><span class="section"><a href="#idm44639280">2.1.3. ABI compatibility and preparing for security updates</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-CXX-Language-CXX11">2.1.4. C++0X and C++11 support</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Defensive_Coding-CXX-Std">2.2. The C++ standard library</a></span></dt><dd><dl><dt><span class="section"><a href="#idm46055760">2.2.1. Containers and <code class="literal">operator[]</code></a><
 /span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#chap-Defensive_Coding-Python">3. The Python Programming Language</a></span></dt><dd><dl><dt><span class="section"><a href="#idm50665744">3.1. Dangerous standard library features</a></span></dt><dt><span class="section"><a href="#idm94056128">3.2. Run-time compilation and code generation</a></span></dt><dt><span class="section"><a href="#idm80392592">3.3. Sandboxing</a></span></dt></dl></dd></dl></div><div xml:lang="en-US" class="chapter" id="chap-Defensive_Coding-C" lang="en-US"><div class="titlepage"><div><div><h2 class="title">Chapter 1. The C Programming Language</h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="#sect-Defensive_Coding-C-Language">1.1. The core language</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Defensive_Coding-C-Undefined">1.1.1. Undefined behavior</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-C-Pointers">1.1.2.
  Recommendations for pointers and array handling</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-C-Arithmetic">1.1.3. Recommendations for integer arithmetic</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Defensive_Coding-C-Libc">1.2. The C standard library</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Defensive_Coding-C-Absolutely-Banned">1.2.1. Absolutely banned interfaces</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-C-Avoid">1.2.2. Functions to avoid</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-C-String-Functions-Length">1.2.3. String Functions With Explicit Length Arguments</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Defensive_Coding-C-Allocators">1.3. Memory allocators</a></span></dt><dd><dl><dt><span class="section"><a href="#idm73731536">1.3.1. <code class="function">malloc</code> and related functions</a></span></dt><dt><span clas
 s="section"><a href="#sect-Defensive_Coding-C-Allocators-alloca">1.3.2. <code class="function">alloca</code> and other forms of stack-based allocation</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-C-Allocators-Arrays">1.3.3. Array allocation</a></span></dt><dt><span class="section"><a href="#idm91441792">1.3.4. Custom memory allocators</a></span></dt><dt><span class="section"><a href="#idm86254288">1.3.5. Conservative garbage collection</a></span></dt></dl></dd></dl></div><div xml:lang="en-US" class="section" id="sect-Defensive_Coding-C-Language" lang="en-US"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">1.1. The core language</h2></div></div></div><div class="para">
+		C provides no memory safety. Most recommendations in this section deal with this aspect of the language.
+	</div><div class="section" id="sect-Defensive_Coding-C-Undefined"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">1.1.1. Undefined behavior</h3></div></div></div><div class="para">
+			Some C constructs are defined to be undefined by the C standard. This does not only mean that the standard does not describe what happens when the construct is executed. It also allows optimizing compilers such as GCC to assume that this particular construct is never reached. In some cases, this has caused GCC to optimize security checks away. (This is not a flaw in GCC or the C language. But C certainly has some areas which are more difficult to use than others.)
+		</div><div class="para">
+			Common sources of undefined behavior are:
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					out-of-bounds array accesses
+				</div></li><li class="listitem"><div class="para">
+					null pointer dereferences
+				</div></li><li class="listitem"><div class="para">
+					overflow in signed integer arithmetic
+				</div></li></ul></div></div><div class="section" id="sect-Defensive_Coding-C-Pointers"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">1.1.2. Recommendations for pointers and array handling</h3></div></div></div><div class="para">
+			Always keep track of the size of the array you are working with. Often, code is more obviously correct when you keep a pointer past the last element of the array, and calculate the number of remaining elements by substracting the current position from that pointer. The alternative, updating a separate variable every time when the position is advanced, is usually less obviously correct.
+		</div><div class="para">
+			<a class="xref" href="#ex-Defensive_Coding-C-Pointers-remaining">Example 1.1, “Array processing in C”</a> shows how to extract Pascal-style strings from a character buffer. The two pointers kept for length checks are <code class="varname">inend</code> and <code class="varname">outend</code>. <code class="varname">inp</code> and <code class="varname">outp</code> are the respective positions. The number of input bytes is checked using the expression <code class="literal">len &gt; (size_t)(inend - inp)</code>. The cast silences a compiler warning; <code class="varname">inend</code> is always larger than <code class="varname">inp</code>.
+		</div><div class="example" id="ex-Defensive_Coding-C-Pointers-remaining"><h6>Example 1.1. Array processing in C</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+ssize_t
+extract_strings(<span class="perl_DataType">const</span> <span class="perl_DataType">char</span> *in, size_t inlen, <span class="perl_DataType">char</span> **out, size_t outlen)
+{
+  <span class="perl_DataType">const</span> <span class="perl_DataType">char</span> *inp = in;
+  <span class="perl_DataType">const</span> <span class="perl_DataType">char</span> *inend = in + inlen;
+  <span class="perl_DataType">char</span> **outp = out;
+  <span class="perl_DataType">char</span> **outend = out + outlen;
+
+  <span class="perl_Keyword">while</span> (inp != inend) {
+    size_t len;
+    <span class="perl_DataType">char</span> *s;
+    <span class="perl_Keyword">if</span> (outp == outend) {
+      errno = ENOSPC;
+      <span class="perl_Keyword">goto</span> err;
+    }
+    len = (<span class="perl_DataType">unsigned</span> <span class="perl_DataType">char</span>)*inp;
+    ++inp;
+    <span class="perl_Keyword">if</span> (len &gt; (size_t)(inend - inp)) {
+      errno = EINVAL;
+      <span class="perl_Keyword">goto</span> err;
+    }
+    s = malloc(len + <span class="perl_Float">1</span>);
+    <span class="perl_Keyword">if</span> (s == NULL) {
+      <span class="perl_Keyword">goto</span> err;
+    }
+    memcpy(s, inp, len);
+    inp += len;
+    s[len] = '\0';
+    *outp = s;
+    ++outp;
+  }
+  <span class="perl_Keyword">return</span> outp - out;
+err:
+  {
+    <span class="perl_DataType">int</span> errno_old = errno;
+    <span class="perl_Keyword">while</span> (out != outp) {
+      free(*out);
+      ++out;
+    }
+    errno = errno_old;
+  }
+  <span class="perl_Keyword">return</span> <span class="perl_DecVal">-1</span>;
+}
+</pre></div></div><br class="example-break" /><div class="para">
+			It is important that the length checks always have the form <code class="literal">len &gt; (size_t)(inend - inp)</code>, where <code class="varname">len</code> is a variable of type <span class="type">size_t</span> which denotes the <span class="emphasis"><em>total</em></span> number of bytes which are about to be read or written next. In general, it is not safe to fold multiple such checks into one, as in <code class="literal">len1 + len2 &gt; (size_t)(inend - inp)</code>, because the expression on the left can overflow or wrap around (see <a class="xref" href="#sect-Defensive_Coding-C-Arithmetic">Section 1.1.3, “Recommendations for integer arithmetic”</a>), and it no longer reflects the number of bytes to be processed.
+		</div></div><div class="section" id="sect-Defensive_Coding-C-Arithmetic"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">1.1.3. Recommendations for integer arithmetic</h3></div></div></div><div class="para">
+			Overflow in signed integer arithmetic is undefined. This means that it is not possible to check for overflow after it happened, see <a class="xref" href="#ex-Defensive_Coding-C-Arithmetic-bad">Example 1.2, “Incorrect overflow detection in C”</a>.
+		</div><div class="example" id="ex-Defensive_Coding-C-Arithmetic-bad"><h6>Example 1.2. Incorrect overflow detection in C</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_DataType">void</span> report_overflow(<span class="perl_DataType">void</span>);
+
+<span class="perl_DataType">int</span>
+add(<span class="perl_DataType">int</span> a, <span class="perl_DataType">int</span> b)
+{
+  <span class="perl_DataType">int</span> result = a + b;
+  <span class="perl_Keyword">if</span> (a &lt; 0 || b &lt; 0) {
+    <span class="perl_Keyword">return</span> <span class="perl_DecVal">-1</span>;
+  }
+  <span class="perl_Comment">// The compiler can optimize away the following if statement.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>  <span class="perl_Keyword">if</span> (result &lt; 0) {
+    report_overflow();
+  }
+  <span class="perl_Keyword">return</span> result;
+}
+</pre></div></div><br class="example-break" /><div class="para">
+			The following approaches can be used to check for overflow, without actually causing it.
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					Use a wider type to perform the calculation, check that the result is within bounds, and convert the result to the original type. All intermediate results must be checked in this way.
+				</div></li><li class="listitem"><div class="para">
+					Perform the calculation in the corresponding unsigned type and use bit fiddling to detect the overflow.
+				</div></li><li class="listitem"><div class="para">
+					Compute bounds for acceptable input values which are known to avoid overflow, and reject other values. This is the preferred way for overflow checking on multiplications, see <a class="xref" href="#ex-Defensive_Coding-C-Arithmetic-mult">Example 1.3, “Overflow checking for unsigned multiplication”</a>. 
+				</div></li></ul></div><div class="example" id="ex-Defensive_Coding-C-Arithmetic-mult"><h6>Example 1.3. Overflow checking for unsigned multiplication</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_DataType">unsigned</span>
+mul(<span class="perl_DataType">unsigned</span> a, <span class="perl_DataType">unsigned</span> b)
+{
+  <span class="perl_Keyword">if</span> (b &amp;&amp; a &gt; ((<span class="perl_DataType">unsigned</span>)<span class="perl_DecVal">-1</span>) / b) {
+    report_overflow();
+  }
+  <span class="perl_Keyword">return</span> a * b;
+}
+</pre></div></div><br class="example-break" /><div class="para">
+			Basic arithmetic operations a commutative, so for bounds checks, there are two different but mathematically equivalent expressions. Sometimes, one of the expressions results in better code because parts of it can be reduced to a constant. This applies to overflow checks for multiplication <code class="literal">a * b</code> involving a constant <code class="literal">a</code>, where the expression is reduced to <code class="literal">b &gt; C</code> for some constant <code class="literal">C</code> determined at compile time. The other expression, <code class="literal">b &amp;&amp; a &gt; ((unsigned)-1) / b</code>, is more difficult to optimize at compile time.
+		</div><div class="para">
+			When a value is converted to a signed integer, GCC always chooses the result based on 2's complement arithmetic. This GCC extension (which is also implemented by other compilers) helps a lot when implementing overflow checks.
+		</div><div class="para">
+			Legacy code should be compiled with the <code class="option">-fwrapv</code> GCC option. As a result, GCC will provide 2's complement semantics for integer arithmetic, including defined behavior on integer overflow.
+		</div></div></div><div xml:lang="en-US" class="section" id="sect-Defensive_Coding-C-Libc" lang="en-US"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">1.2. The C standard library</h2></div></div></div><div class="para">
+		Parts of the C standard library (and the UNIX and GNU extensions) are difficult to use, so you shoud avoid them.
+	</div><div class="para">
+		Please check the applicable documentation before using the recommended replacements. Many of these functions allocate buffers using <code class="function">malloc</code> which your code must deallocate explicitly using <code class="function">free</code>.
+	</div><div class="section" id="sect-Defensive_Coding-C-Absolutely-Banned"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">1.2.1. Absolutely banned interfaces</h3></div></div></div><div class="para">
+			The functions listed below must not be used because they are almost always unsafe. Use the indicated replacements instead.
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					<code class="function">gets</code> ⟶ <code class="function">fgets</code>
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">getwd</code> ⟶ <code class="function">getcwd</code> or <code class="function">get_current_dir_name</code>
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">readdir_r</code> ⟶ <code class="function">readdir</code>  
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">realpath</code> (with a non-NULL second parameter) ⟶ <code class="function">realpath</code> with NULL as the second parameter, or <code class="function">canonicalize_file_name</code>  
+				</div></li></ul></div><div class="para">
+			The constants listed below must not be used, either. Instead, code must allocate memory dynamically and use interfaces with length checking.
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					<code class="literal">NAME_MAX</code> (limit not actually enforced by the kernel)
+				</div></li><li class="listitem"><div class="para">
+					<code class="literal">PATH_MAX</code> (limit not actually enforced by the kernel)
+				</div></li><li class="listitem"><div class="para">
+					<code class="literal">_PC_NAME_MAX</code> (This limit, returned by the <code class="function">pathconf</code> function, is not enforced by the kernel.)
+				</div></li><li class="listitem"><div class="para">
+					<code class="literal">_PC_PATH_MAX</code> (This limit, returned by the <code class="function">pathconf</code> function, is not enforced by the kernel.)
+				</div></li></ul></div><div class="para">
+			The following structure members must not be used.
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					<code class="literal">f_namemax</code> in <code class="literal">struct statvfs</code> (limit not actually enforced by the kernel, see <code class="literal">_PC_NAME_MAX</code> above)
+				</div></li></ul></div></div><div class="section" id="sect-Defensive_Coding-C-Avoid"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">1.2.2. Functions to avoid</h3></div></div></div><div class="para">
+			The following string manipulation functions can be used securely in principle, but their use should be avoided because they are difficult to use correctly. Calls to these functions can be replaced with <code class="function">asprintf</code> or <code class="function">vasprintf</code>. (For non-GNU targets, these functions are available from Gnulib.) In some cases, the <code class="function">snprintf</code> function might be a suitable replacement, see <a class="xref" href="#sect-Defensive_Coding-C-String-Functions-Length">Section 1.2.3, “String Functions With Explicit Length Arguments”</a>.
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					<code class="function">sprintf</code>
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">strcat</code>
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">strcpy</code>
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">vsprintf</code>
+				</div></li></ul></div><div class="para">
+			Use the indicated replacements for the functions below.
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					<code class="function">alloca</code> ⟶ <code class="function">malloc</code> and <code class="function">free</code> (see <a class="xref" href="#sect-Defensive_Coding-C-Allocators-alloca">Section 1.3.2, “<code class="function">alloca</code> and other forms of stack-based allocation”</a>)
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">putenv</code> ⟶ explicit <code class="varname">envp</code> argument in process creation (see <a class="xref" href="#sect-Defensive_Coding-Tasks-Processes-environ">Section 8.1.3, “Specifying the process environment”</a>)
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">setenv</code> ⟶ explicit <code class="varname">envp</code> argument in process creation (see <a class="xref" href="#sect-Defensive_Coding-Tasks-Processes-environ">Section 8.1.3, “Specifying the process environment”</a>)
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">strdupa</code> ⟶ <code class="function">strdup</code> and <code class="function">free</code> (see <a class="xref" href="#sect-Defensive_Coding-C-Allocators-alloca">Section 1.3.2, “<code class="function">alloca</code> and other forms of stack-based allocation”</a>)
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">strndupa</code> ⟶ <code class="function">strndup</code> and <code class="function">free</code> (see <a class="xref" href="#sect-Defensive_Coding-C-Allocators-alloca">Section 1.3.2, “<code class="function">alloca</code> and other forms of stack-based allocation”</a>)
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">system</code> ⟶ <code class="function">posix_spawn</code> or <code class="function">fork</code>/<code class="function">execve</code>/ (see <a class="xref" href="#sect-Defensive_Coding-Tasks-Processes-execve">Section 8.1.2, “Bypassing the shell”</a>)
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">unsetenv</code> ⟶ explicit <code class="varname">envp</code> argument in process creation (see <a class="xref" href="#sect-Defensive_Coding-Tasks-Processes-environ">Section 8.1.3, “Specifying the process environment”</a>)
+				</div></li></ul></div></div><div class="section" id="sect-Defensive_Coding-C-String-Functions-Length"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">1.2.3. String Functions With Explicit Length Arguments</h3></div></div></div><div class="para">
+			The <code class="function">snprintf</code> function provides a way to construct a string in a statically-sized buffer. (If the buffer size is dynamic, use <code class="function">asprintf</code> instead.)
+		</div><div class="informalexample"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_DataType">char</span> fraction[<span class="perl_Float">30</span>];
+snprintf(fraction, <span class="perl_Keyword">sizeof</span>(fraction), <span class="perl_String">"%d/%d"</span>, numerator, denominator);
+</pre></div><div class="para">
+			The second argument to the <code class="function">snprintf</code> should always be the size of the buffer in the first argument (which should be a character array). Complex pointer and length arithmetic can introduce errors and nullify the security benefits of <code class="function">snprintf</code>. If you need to construct a string iteratively, by repeatedly appending fragments, consider constructing the string on the heap, increasing the buffer with <code class="function">realloc</code> as needed. (<code class="function">snprintf</code> does not support overlapping the result buffer with argument strings.)
+		</div><div class="para">
+			If you use <code class="function">vsnprintf</code> (or <code class="function">snprintf</code>) with a format string which is not a constant, but a function argument, it is important to annotate the function with a <code class="literal">format</code> function attribute, so that GCC can warn about misuse of your function (see <a class="xref" href="#ex-Defensive_Coding-C-String-Functions-format-Attribute">Example 1.4, “The <code class="literal">format</code> function attribute”</a>).
+		</div><div class="example" id="ex-Defensive_Coding-C-String-Functions-format-Attribute"><h6>Example 1.4. The <code class="literal">format</code> function attribute</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_DataType">void</span> log_format(<span class="perl_DataType">const</span> <span class="perl_DataType">char</span> *format, ...) __attribute__((format(printf, <span class="perl_Float">1</span>, <span class="perl_Float">2</span>)));
+
+<span class="perl_DataType">void</span>
+log_format(<span class="perl_DataType">const</span> <span class="perl_DataType">char</span> *format, ...)
+{
+  <span class="perl_DataType">char</span> buf[<span class="perl_Float">1000</span>];
+  va_list ap;
+  va_start(ap, format);
+  vsnprintf(buf, <span class="perl_Keyword">sizeof</span>(buf), format, ap);
+  va_end(ap);
+  log_string(buf);
+}
+</pre></div></div><br class="example-break" /><div class="para">
+			There are other functions which operator on NUL-terminated strings and take a length argument which affects the number of bytes written to the destination: <code class="function">strncpy</code>, <code class="function">strncat</code>, and <code class="function">stpncpy</code>. These functions do not ensure that the result string is NUL-terminated. For <code class="function">strncpy</code>, NUL termination can be added this way:
+		</div><div class="informalexample"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_DataType">char</span> buf[<span class="perl_Float">10</span>];
+strncpy(buf, data, <span class="perl_Keyword">sizeof</span>(buf));
+buf[<span class="perl_Keyword">sizeof</span>(buf) - <span class="perl_Float">1</span>] = '\0';
+</pre></div><div class="para">
+			Some systems support <code class="function">strlcpy</code> and <code class="function">strlcat</code> functions which behave this way, but these functions are not part of GNU libc. Using <code class="function">snprintf</code> with a suitable format string is a simple (albeit slightly slower) replacement.
+		</div></div></div><div xml:lang="en-US" class="section" id="sect-Defensive_Coding-C-Allocators" lang="en-US"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">1.3. Memory allocators</h2></div></div></div><div class="section" id="idm73731536"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idm73731536">1.3.1. <code class="function">malloc</code> and related functions</h3></div></div></div><div class="para">
+			The C library interfaces for memory allocation are provided by <code class="function">malloc</code>, <code class="function">free</code> and <code class="function">realloc</code>, and the <code class="function">calloc</code> function. In addition to these generic functions, there are derived functions such as <code class="function">strdup</code> which perform allocation using <code class="function">malloc</code> internally, but do not return untyped heap memory (which could be used for any object).
+		</div><div class="para">
+			The C compiler knows about these functions and can use their expected behavior for optimizations. For instance, the compiler assumes that an existing pointer (or a pointer derived from an existing pointer by arithmetic) will not point into the memory area returned by <code class="function">malloc</code>.
+		</div><div class="para">
+			If the allocation fails, <code class="function">realloc</code> does not free the old pointer. Therefore, the idiom <code class="literal">ptr = realloc(ptr, size);</code> is wrong because the memory pointed to by <code class="literal">ptr</code> leaks in case of an error.
+		</div><div class="section" id="idm44297088"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="idm44297088">1.3.1.1. Use-after-free errors</h4></div></div></div><div class="para">
+				After <code class="function">free</code>, the pointer is invalid. Further pointer dereferences are not allowed (and are usually detected by <span class="application"><strong>valgrind</strong></span>). Less obvious is that any <span class="emphasis"><em>use</em></span> of the old pointer value is not allowed, either. In particular, comparisons with any other pointer (or the null pointer) are undefined according to the C standard.
+			</div><div class="para">
+				The same rules apply to <code class="function">realloc</code> if the memory area cannot be enlarged in-place. For instance, the compiler may assume that a comparison between the old and new pointer will always return false, so it is impossible to detect movement this way.
+			</div></div><div class="section" id="idm88092944"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="idm88092944">1.3.1.2. Handling memory allocation errors</h4></div></div></div><div class="para">
+				Recovering from out-of-memory errors is often difficult or even impossible. In these cases, <code class="function">malloc</code> and other allocation functions return a null pointer. Dereferencing this pointer lead to a crash. Such dereferences can even be exploitable for code execution if the dereference is combined with an array subscript.
+			</div><div class="para">
+				In general, if you cannot check all allocation calls and handle failure, you should abort the program on allocation failure, and not rely on the null pointer dereference to terminate the process. See <a class="xref" href="#sect-Defensive_Coding-Tasks-Serialization-Decoders">Section 9.1, “Recommendations for manually written decoders”</a> for related memory allocation concerns.
+			</div></div></div><div class="section" id="sect-Defensive_Coding-C-Allocators-alloca"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">1.3.2. <code class="function">alloca</code> and other forms of stack-based allocation</h3></div></div></div><div class="para">
+			Allocation on the stack is risky because stack overflow checking is implicit. There is a guard page at the end of the memory area reserved for the stack. If the program attempts to read from or write to this guard page, a <code class="literal">SIGSEGV</code> signal is generated and the program typically terminates.
+		</div><div class="para">
+			This is sufficient for detecting typical stack overflow situations such as unbounded recursion, but it fails when the stack grows in increments larger than the size of the guard page. In this case, it is possible that the stack pointer ends up pointing into a memory area which has been allocated for a different purposes. Such misbehavior can be exploitable.
+		</div><div class="para">
+			A common source for large stack growth are calls to <code class="function">alloca</code> and related functions such as <code class="function">strdupa</code>. These functions should be avoided because of the lack of error checking. (They can be used safely if the allocated size is less than the page size (typically, 4096 bytes), but this case is relatively rare.) Additionally, relying on <code class="function">alloca</code> makes it more difficult to reorgnize the code because it is not allowed to use the pointer after the function calling <code class="function">alloca</code> has returned, even if this function has been inlined into its caller.
+		</div><div class="para">
+			Similar concerns apply to <span class="emphasis"><em>variable-length arrays</em></span> (VLAs), a feature of the C99 standard which started as a GNU extension. For large objects exceeding the page size, there is no error checking, either.
+		</div><div class="para">
+			In both cases, negative or very large sizes can trigger a stack-pointer wraparound, and the stack pointer and end up pointing into caller stack frames, which is fatal and can be exploitable.
+		</div><div class="para">
+			If you want to use <code class="function">alloca</code> or VLAs for performance reasons, consider using a small on-stack array (less than the page size, large enough to fulfill most requests). If the requested size is small enough, use the on-stack array. Otherwise, call <code class="function">malloc</code>. When exiting the function, check if <code class="function">malloc</code> had been called, and free the buffer as needed.
+		</div></div><div class="section" id="sect-Defensive_Coding-C-Allocators-Arrays"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">1.3.3. Array allocation</h3></div></div></div><div class="para">
+			When allocating arrays, it is important to check for overflows. The <code class="function">calloc</code> function performs such checks.
+		</div><div class="para">
+			If <code class="function">malloc</code> or <code class="function">realloc</code> is used, the size check must be written manually. For instance, to allocate an array of <code class="literal">n</code> elements of type <code class="literal">T</code>, check that the requested size is not greater than <code class="literal">n / sizeof(T)</code>.
+		</div></div><div class="section" id="idm91441792"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idm91441792">1.3.4. Custom memory allocators</h3></div></div></div><div class="para">
+			Custom memory allocates come in two forms: replacements for <code class="function">malloc</code>, and completely different interfaces for memory management. Both approaches can reduce the effectiveness of <span class="application"><strong>valgrind</strong></span> and similar tools, and the heap corruption detection provided by GNU libc, so they should be avoided.
+		</div><div class="para">
+			Memory allocators are difficult to write and contain many performance and security pitfalls.
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					When computing array sizes or rounding up allocation requests (to the next allocation granularity, or for alignment purposes), checks for arithmetic overflow are required.
+				</div></li><li class="listitem"><div class="para">
+					Size computations for array allocations need overflow checking. See <a class="xref" href="#sect-Defensive_Coding-C-Allocators-Arrays">Section 1.3.3, “Array allocation”</a>.
+				</div></li><li class="listitem"><div class="para">
+					It can be difficult to beat well-tuned general-purpose allocators. In micro-benchmarks, pool allocators can show huge wins, and size-specific pools can reduce internal fragmentation. But often, utilization of individual pools is poor, and
+				</div></li></ul></div></div><div class="section" id="idm86254288"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idm86254288">1.3.5. Conservative garbage collection</h3></div></div></div><div class="para">
+			Garbage collection can be an alternative to explicit memory management using <code class="function">malloc</code> and <code class="function">free</code>. The Boehm-Dehmers-Weiser allocator can be used from C programs, with minimal type annotations. Performance is competitive with <code class="function">malloc</code> on 64-bit architectures, especially for multi-threaded programs. The stop-the-world pauses may be problematic for some real-time applications, though.
+		</div><div class="para">
+			However, using a conservative garbage collector may reduce opertunities for code reduce because once one library in a program uses garbage collection, the whole process memory needs to be subject to it, so that no pointers are missed. The Boehm-Dehmers-Weiser collector also reserves certain signals for internal use, so it is not fully transparent to the rest of the program.
+		</div></div></div></div><div xml:lang="en-US" class="chapter" id="chap-Defensive_Coding-CXX" lang="en-US"><div class="titlepage"><div><div><h2 class="title">Chapter 2. The C++ Programming Language</h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="#sect-Defensive_Coding-CXX-Language">2.1. The core language</a></span></dt><dd><dl><dt><span class="section"><a href="#idm94687744">2.1.1. Array allocation with <code class="literal">operator new[]</code></a></span></dt><dt><span class="section"><a href="#idm118459552">2.1.2. Overloading</a></span></dt><dt><span class="section"><a href="#idm44639280">2.1.3. ABI compatibility and preparing for security updates</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-CXX-Language-CXX11">2.1.4. C++0X and C++11 support</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Defensive_Coding-CXX-Std">2.2. The C++ standard library</a></span></dt><dd><dl><dt><span class="section"><a
  href="#idm46055760">2.2.1. Containers and <code class="literal">operator[]</code></a></span></dt></dl></dd></dl></div><div xml:lang="en-US" class="section" id="sect-Defensive_Coding-CXX-Language" lang="en-US"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">2.1. The core language</h2></div></div></div><div class="para">
+		C++ includes a large subset of the C language. As far as the C subset is used, the recommendations in <a class="xref" href="#chap-Defensive_Coding-C">Chapter 1, <em>The C Programming Language</em></a> apply.
+	</div><div class="section" id="idm94687744"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idm94687744">2.1.1. Array allocation with <code class="literal">operator new[]</code></h3></div></div></div><div class="para">
+			For very large values of <code class="literal">n</code>, an expression like <code class="literal">new T[n]</code> can return a pointer to a heap region which is too small. In other words, not all array elements are actually backed with heap memory reserved to the array. Current GCC versions generate code that performs a computation of the form <code class="literal">sizeof(T) * size_t(n) + cookie_size</code>, where <code class="literal">cookie_size</code> is currently at most 8. This computation can overflow, and GCC-generated code does not detect this.
+		</div><div class="para">
+			The <code class="literal">std::vector</code> template can be used instead an explicit array allocation. (The GCC implementation detects overflow internally.)
+		</div><div class="para">
+			If there is no alternative to <code class="literal">operator new[]</code>, code which allocates arrays with a variable length must check for overflow manually. For the <code class="literal">new T[n]</code> example, the size check could be <code class="literal">n || (n &gt; 0 &amp;&amp; n &gt; (size_t(-1) - 8) / sizeof(T))</code>. (See <a class="xref" href="#sect-Defensive_Coding-C-Arithmetic">Section 1.1.3, “Recommendations for integer arithmetic”</a>.) If there are additional dimensions (which must be constants according to the C++ standard), these should be included as factors in the divisor.
+		</div><div class="para">
+			These countermeasures prevent out-of-bounds writes and potential code execution. Very large memory allocations can still lead to a denial of service. <a class="xref" href="#sect-Defensive_Coding-Tasks-Serialization-Decoders">Section 9.1, “Recommendations for manually written decoders”</a> contains suggestions for mitigating this problem when processing untrusted data.
+		</div><div class="para">
+			See <a class="xref" href="#sect-Defensive_Coding-C-Allocators-Arrays">Section 1.3.3, “Array allocation”</a> for array allocation advice for C-style memory allocation.
+		</div></div><div class="section" id="idm118459552"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idm118459552">2.1.2. Overloading</h3></div></div></div><div class="para">
+			Do not overload functions with versions that have different security characteristics. For instance, do not implement a function <code class="function">strcat</code> which works on <span class="type">std::string</span> arguments. Similarly, do not name methods after such functions.
+		</div></div><div class="section" id="idm44639280"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idm44639280">2.1.3. ABI compatibility and preparing for security updates</h3></div></div></div><div class="para">
+			A stable binary interface (ABI) is vastly preferred for security updates. Without a stable ABI, all reverse dependencies need recompiling, which can be a lot of work and could even be impossible in some cases. Ideally, a security update only updates a single dynamic shared object, and is picked up automatically after restarting affected processes.
+		</div><div class="para">
+			Outside of extremely performance-critical code, you should ensure that a wide range of changes is possible without breaking ABI. Some very basic guidelines are:
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					Avoid inline functions.
+				</div></li><li class="listitem"><div class="para">
+					Use the pointer-to-implementation idiom.
+				</div></li><li class="listitem"><div class="para">
+					Try to avoid templates. Use them if the increased type safety provides a benefit to the programmer.
+				</div></li><li class="listitem"><div class="para">
+					Move security-critical code out of templated code, so that it can be patched in a central place if necessary.
+				</div></li></ul></div><div class="para">
+			The KDE project publishes a document with more extensive guidelines on ABI-preserving changes to C++ code, <a href="http://techbase.kde.org/Policies/Binary_Compatibility_Issues_With_C++">Policies/Binary Compatibility Issues With C++</a> (<span class="emphasis"><em>d-pointer</em></span> refers to the pointer-to-implementation idiom).
+		</div></div><div class="section" id="sect-Defensive_Coding-CXX-Language-CXX11"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">2.1.4. C++0X and C++11 support</h3></div></div></div><div class="para">
+			GCC offers different language compatibility modes:
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					<code class="option">-std=c++98</code> for the original 1998 C++ standard
+				</div></li><li class="listitem"><div class="para">
+					<code class="option">-std=c++03</code> for the 1998 standard with the changes from the TR1 technical report
+				</div></li><li class="listitem"><div class="para">
+					<code class="option">-std=c++11</code> for the 2011 C++ standard. This option should not be used.
+				</div></li><li class="listitem"><div class="para">
+					<code class="option">-std=c++0x</code> for several different versions of C++11 support in development, depending on the GCC version. This option should not be used. 
+				</div></li></ul></div><div class="para">
+			For each of these flags, there are variants which also enable GNU extensions (mostly language features also found in C99 or C11): <code class="option">-std=gnu++98</code>, <code class="option">-std=gnu++03</code>, <code class="option">-std=gnu++11</code>. Again, <code class="option">-std=gnu++11</code> should not be used.
+		</div><div class="para">
+			If you enable C++11 support, the ABI of the standard C++ library <code class="literal">libstdc++</code> will change in subtle ways. Currently, no C++ libraries are compiled in C++11 mode, so if you compile your code in C++11 mode, it will be incompatible with the rest of the system. Unfortunately, this is also the case if you do not use any C++11 features. Currently, there is no safe way to enable C++11 mode (except for freestanding applications).
+		</div><div class="para">
+			The meaning of C++0X mode changed from GCC release to GCC release. Earlier versions were still ABI-compatible with C++98 mode, but in the most recent versions, switching to C++0X mode activates C++11 support, with its compatibility problems.
+		</div><div class="para">
+			Some C++11 features (or approximations thereof) are available with TR1 support, that is, with <code class="option">-std=c++03</code> or <code class="option">-std=gnu++03</code> and in the <code class="literal">&lt;tr1/*&gt;</code> header files. This includes <code class="literal">std::tr1::shared_ptr</code> (from <code class="literal">&lt;tr1/memory&gt;</code>) and <code class="literal">std::tr1::function</code> (from <code class="literal">&lt;tr1/functional&gt;</code>). For other C++11 features, the Boost C++ library contains replacements.
+		</div></div></div><div xml:lang="en-US" class="section" id="sect-Defensive_Coding-CXX-Std" lang="en-US"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">2.2. The C++ standard library</h2></div></div></div><div class="para">
+		The C++ standard library includes most of its C counterpart by reference, see <a class="xref" href="#sect-Defensive_Coding-C-Libc">Section 1.2, “The C standard library”</a>.
+	</div><div class="section" id="idm46055760"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idm46055760">2.2.1. Containers and <code class="literal">operator[]</code></h3></div></div></div><div class="para">
+			Many containers similar to <code class="literal">std::vector</code> provide both <code class="literal">operator[](size_type)</code> and a member function <code class="literal">at(size_type)</code>. This applies to <code class="literal">std::vector</code> itself, <code class="literal">std::array</code>, <code class="literal">std::string</code> and other instances of <code class="literal">std::basic_string</code>.
+		</div><div class="para">
+			<code class="literal">operator[](size_type)</code> is not required by the standard to perform bounds checking (and the implementation in GCC does not). In contrast, <code class="literal">at(size_type)</code> must perform such a check. Therefore, in code which is not performance-critical, you should prefer <code class="literal">at(size_type)</code> over <code class="literal">operator[](size_type)</code>, even though it is slightly more verbose.
+		</div></div></div></div><div xml:lang="en-US" class="chapter" id="chap-Defensive_Coding-Python" lang="en-US"><div class="titlepage"><div><div><h2 class="title">Chapter 3. The Python Programming Language</h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="#idm50665744">3.1. Dangerous standard library features</a></span></dt><dt><span class="section"><a href="#idm94056128">3.2. Run-time compilation and code generation</a></span></dt><dt><span class="section"><a href="#idm80392592">3.3. Sandboxing</a></span></dt></dl></div><div class="para">
+		Python provides memory safety by default, so low-level security vulnerabilities are rare and typically needs fixing the Python interpreter or standard library itself.
+	</div><div class="para">
+		Other sections with Python-specific advice include:
+	</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+				<a class="xref" href="#chap-Defensive_Coding-Tasks-Temporary_Files">Chapter 7, <em>Temporary files</em></a>
+			</div></li><li class="listitem"><div class="para">
+				<a class="xref" href="#sect-Defensive_Coding-Tasks-Processes-Creation">Section 8.1, “Safe process creation”</a>
+			</div></li><li class="listitem"><div class="para">
+				<a class="xref" href="#chap-Defensive_Coding-Tasks-Serialization">Chapter 9, <em>Serialization and Deserialization</em></a>, in particular <a class="xref" href="#sect-Defensive_Coding-Tasks-Serialization-Library">Section 9.3, “Library support for deserialization”</a>
+			</div></li><li class="listitem"><div class="para">
+				<a class="xref" href="#sect-Defensive_Coding-Tasks-Cryptography-Randomness">Section 10.2, “Randomness”</a>
+			</div></li></ul></div><div class="section" id="idm50665744"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idm50665744">3.1. Dangerous standard library features</h2></div></div></div><div class="para">
+			Some areas of the standard library, notably the <code class="literal">ctypes</code> module, do not provide memory safety guarantees comparable to the rest of Python. If such functionality is used, the advice in <a class="xref" href="#sect-Defensive_Coding-C-Language">Section 1.1, “The core language”</a> should be followed.
+		</div></div><div class="section" id="idm94056128"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idm94056128">3.2. Run-time compilation and code generation</h2></div></div></div><div class="para">
+			The following Python functions and statements related to code execution should be avoided:
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					<code class="function">compile</code>
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">eval</code>
+				</div></li><li class="listitem"><div class="para">
+					<code class="literal">exec</code>
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">execfile</code>
+				</div></li></ul></div><div class="para">
+			If you need to parse integers or floating point values, use the <code class="function">int</code> and <code class="function">float</code> functions instead of <code class="function">eval</code>. Sandboxing untrusted Python code does not work reliably.
+		</div></div><div class="section" id="idm80392592"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idm80392592">3.3. Sandboxing</h2></div></div></div><div class="para">
+			The <code class="literal">rexec</code> Python module cannot safely sandbox untrusted code and should not be used. The standard CPython implementation is not suitable for sandboxing.
+		</div></div></div></div><div class="part" id="idm44500384"><div class="titlepage"><div><div text-align="center"><h1 class="title">Part II. Specific Programming Tasks</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="chapter"><a href="#chap-Defensive_Coding-Tasks-Library_Design">4. Library Design</a></span></dt><dd><dl><dt><span class="section"><a href="#idm7200176">4.1. State management</a></span></dt><dd><dl><dt><span class="section"><a href="#idm48360352">4.1.1. Global state</a></span></dt><dt><span class="section"><a href="#idm49681472">4.1.2. Handles</a></span></dt></dl></dd><dt><span class="section"><a href="#idm34211280">4.2. Object orientation</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Library_Design-Callbacks">4.3. Callbacks</a></span></dt><dt><span class="section"><a href="#idm63633888">4.4. Process attributes</a></span></dt></dl></dd><dt><span class="chapter"><a href="#sect-D
 efensive_Coding-Tasks-Descriptors">5. File Descriptor Management</a></span></dt><dd><dl><dt><span class="section"><a href="#idm40898320">5.1. Closing descriptors</a></span></dt><dd><dl><dt><span class="section"><a href="#idm81363664">5.1.1. Error handling during descriptor close</a></span></dt><dt><span class="section"><a href="#idm61020000">5.1.2. Closing descriptors and race conditions</a></span></dt><dt><span class="section"><a href="#idm56381840">5.1.3. Lingering state after close</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Descriptors-Child_Processes">5.2. Preventing file descriptor leaks to child processes</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Descriptors-Limit">5.3. Dealing with the <code class="function">select</code> limit</a></span></dt></dl></dd><dt><span class="chapter"><a href="#chap-Defensive_Coding-Tasks-File_System">6. File system manipulation</a></span></dt><dd><dl><dt><spa
 n class="section"><a href="#sect-Defensive_Coding-Tasks-File_System-Unowned">6.1. Working with files and directories owned by other users</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-File_System-Foreign">6.2. Accessing the file system as a different user</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-File_System-Limits">6.3. File system limits</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-File_System-Features">6.4. File system features</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-File_System-Free_Space">6.5. Checking free space</a></span></dt></dl></dd><dt><span class="chapter"><a href="#chap-Defensive_Coding-Tasks-Temporary_Files">7. Temporary files</a></span></dt><dd><dl><dt><span class="section"><a href="#chap-Defensive_Coding-Tasks-Temporary_Files-Location">7.1. Obtaining the location of temporary directory</a></span></dt><dt><span class="s
 ection"><a href="#idm51805696">7.2. Named temporary files</a></span></dt><dt><span class="section"><a href="#idm96363904">7.3. Temporary files without names</a></span></dt><dt><span class="section"><a href="#chap-Defensive_Coding-Tasks-Temporary_Directory">7.4. Temporary directories</a></span></dt><dt><span class="section"><a href="#idm77045280">7.5. Compensating for unsafe file creation</a></span></dt></dl></dd><dt><span class="chapter"><a href="#sect-Defensive_Coding-Tasks-Processes">8. Processes</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Processes-Creation">8.1. Safe process creation</a></span></dt><dd><dl><dt><span class="section"><a href="#idm76324400">8.1.1. Obtaining the program path and the command line template</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Processes-execve">8.1.2. Bypassing the shell</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Processes-en
 viron">8.1.3. Specifying the process environment</a></span></dt><dt><span class="section"><a href="#idm68155968">8.1.4. Robust argument list processing</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Processes-Command_Line_Visibility">8.1.5. Passing secrets to subprocesses</a></span></dt></dl></dd><dt><span class="section"><a href="#idm82943808">8.2. Handling child process termination</a></span></dt><dt><span class="section"><a href="#idm41161392">8.3. <code class="literal">SUID</code>/<code class="literal">SGID</code> processes</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-secure_getenv">8.3.1. Accessing environment variables</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Processes-Daemons">8.4. Daemons</a></span></dt><dt><span class="section"><a href="#idm51054224">8.5. Semantics of command line arguments</a></span></dt><dt><span class="section"><a href="#sect-
 Defensive_Coding-Tasks-Processes-Fork-Parallel">8.6. <code class="function">fork</code> as a primitive for parallelism</a></span></dt></dl></dd><dt><span class="chapter"><a href="#chap-Defensive_Coding-Tasks-Serialization">9. Serialization and Deserialization</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Serialization-Decoders">9.1. Recommendations for manually written decoders</a></span></dt><dt><span class="section"><a href="#idm34915552">9.2. Protocol design</a></span></dt><dt><span class="section"><a href="#idm61055792">9.3. Library support for deserialization</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Serialization-XML">9.4. XML serialization</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Serialization-XML-External">9.4.1. External references</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Serialization-XML-Entities">9.4.2. 
 Entity expansion</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Serialization-XML-XInclude">9.4.3. XInclude processing</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Serialization-XML-Validation">9.4.4. Algorithmic complexity of XML validation</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Serialization-XML-Expat">9.4.5. Using Expat for XML parsing</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse">9.4.6. Using OpenJDK for XML parsing and validation</a></span></dt></dl></dd><dt><span class="section"><a href="#idm69258384">9.5. Protocol Encoders</a></span></dt></dl></dd><dt><span class="chapter"><a href="#chap-Defensive_Coding-Tasks-Cryptography">10. Cryptography</a></span></dt><dd><dl><dt><span class="section"><a href="#idm67720016">10.1. Primitives</a></span></dt><dt><span class="section"><a href="#idm71876736">10.2. Ra
 ndomness</a></span></dt></dl></dd></dl></div><div xml:lang="en-US" class="chapter" id="chap-Defensive_Coding-Tasks-Library_Design" lang="en-US"><div class="titlepage"><div><div><h2 class="title">Chapter 4. Library Design</h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="#idm7200176">4.1. State management</a></span></dt><dd><dl><dt><span class="section"><a href="#idm48360352">4.1.1. Global state</a></span></dt><dt><span class="section"><a href="#idm49681472">4.1.2. Handles</a></span></dt></dl></dd><dt><span class="section"><a href="#idm34211280">4.2. Object orientation</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Library_Design-Callbacks">4.3. Callbacks</a></span></dt><dt><span class="section"><a href="#idm63633888">4.4. Process attributes</a></span></dt></dl></div><div class="para">
+		Throught this section, the term <span class="emphasis"><em>client code</em></span> refers to applications and other libraries using the library.
+	</div><div class="section" id="idm7200176"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idm7200176">4.1. State management</h2></div></div></div><div class="para">
+
+		</div><div class="section" id="idm48360352"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idm48360352">4.1.1. Global state</h3></div></div></div><div class="para">
+				Global state should be avoided.
+			</div><div class="para">
+				If this is impossible, the global state must be protected with a lock. For C/C++, you can use the <code class="function">pthread_mutex_lock</code> and <code class="function">pthread_mutex_unlock</code> functions without linking against <code class="literal">-lpthread</code> because the system provides stubs for non-threaded processes.
+			</div><div class="para">
+				For compatibility with <code class="function">fork</code>, these locks should be acquired and released in helpers registered with <code class="function">pthread_atfork</code>. This function is not available without <code class="literal">-lpthread</code>, so you need to use <code class="function">dlsym</code> or a weak symbol to obtain its address.
+			</div><div class="para">
+				If you need <code class="function">fork</code> protection for other reasons, you should store the process ID and compare it to the value returned by <code class="function">getpid</code> each time you access the global state. (<code class="function">getpid</code> is not implemented as a system call and is fast.) If the value changes, you know that you have to re-create the state object. (This needs to be combined with locking, of course.)
+			</div></div><div class="section" id="idm49681472"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idm49681472">4.1.2. Handles</h3></div></div></div><div class="para">
+				Library state should be kept behind a curtain. Client code should receive only a handle. In C, the handle can be a pointer to an incomplete <code class="literal">struct</code>. In C++, the handle can be a pointer to an abstract base class, or it can be hidden using the pointer-to-implementation idiom.
+			</div><div class="para">
+				The library should provide functions for creating and destroying handles. (In C++, it is possible to use virtual destructors for the latter.) Consistency between creation and destruction of handles is strongly recommended: If the client code created a handle, it is the responsibility of the client code to destroy it. (This is not always possible or convenient, so sometimes, a transfer of ownership has to happen.)
+			</div><div class="para">
+				Using handles ensures that it is possible to change the way the library represents state in a way that is transparent to client code. This is important to facilitate security updates and many other code changes.
+			</div><div class="para">
+				It is not always necessary to protect state behind a handle with a lock. This depends on the level of thread safety the library provides.
+			</div></div></div><div class="section" id="idm34211280"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idm34211280">4.2. Object orientation</h2></div></div></div><div class="para">
+			Classes should be either designed as base classes, or it should be impossible to use them as base classes (like <code class="literal">final</code> classes in Java). Classes which are not designed for inheritance and are used as base classes nevertheless create potential maintenance hazards because it is difficult to predict how client code will react when calls to virtual methods are added, reordered or removed.
+		</div><div class="para">
+			Virtual member functions can be used as callbacks. See <a class="xref" href="#sect-Defensive_Coding-Tasks-Library_Design-Callbacks">Section 4.3, “Callbacks”</a> for some of the challenges involved.
+		</div></div><div class="section" id="sect-Defensive_Coding-Tasks-Library_Design-Callbacks"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">4.3. Callbacks</h2></div></div></div><div class="para">
+			Higher-order code is difficult to analyze for humans and computers alike, so it should be avoided. Often, an iterator-based interface (a library function which is called repeatedly by client code and returns a stream of events) leads to a better design which is easier to document and use.
+		</div><div class="para">
+			If callbacks are unavoidable, some guidelines for them follow.
+		</div><div class="para">
+			In modern C++ code, <code class="literal">std::function</code> objects should be used for callbacks.
+		</div><div class="para">
+			In older C++ code and in C code, all callbacks must have an additional closure parameter of type <code class="literal">void *</code>, the value of which can be specified by client code. If possible, the value of the closure parameter should be provided by client code at the same time a specific callback is registered (or specified as a function argument). If a single closure parameter is shared by multiple callbacks, flexibility is greatly reduced, and conflicts between different pieces of client code using the same library object could be unresolvable. In some cases, it makes sense to provide a de-registration callback which can be used to destroy the closure parameter when the callback is no longer used.
+		</div><div class="para">
+			Callbacks can throw exceptions or call <code class="function">longjmp</code>. If possible, all library objects should remain in a valid state. (All further operations on them can fail, but it should be possible to deallocate them without causing resource leaks.)
+		</div><div class="para">
+			The presence of callbacks raises the question if functions provided by the library are <span class="emphasis"><em>reentrant</em></span>. Unless a library was designed for such use, bad things will happen if a callback function uses functions in the same library (particularly if they are invoked on the same objects and manipulate the same state). When the callback is invoked, the library can be in an inconsistent state. Reentrant functions are more difficult to write than thread-safe functions (by definition, simple locking would immediately lead to deadlocks). It is also difficult to decide what to do when destruction of an object which is currently processing a callback is requested.
+		</div></div><div class="section" id="idm63633888"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idm63633888">4.4. Process attributes</h2></div></div></div><div class="para">
+			Several attributes are global and affect all code in the process, not just the library that manipulates them.
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					environment variables (see <a class="xref" href="#sect-Defensive_Coding-Tasks-secure_getenv">Section 8.3.1, “Accessing environment variables”</a>)
+				</div></li><li class="listitem"><div class="para">
+					umask
+				</div></li><li class="listitem"><div class="para">
+					user IDs, group IDs and capabilities
+				</div></li><li class="listitem"><div class="para">
+					current working directory
+				</div></li><li class="listitem"><div class="para">
+					signal handlers, signal masks and signal delivery
+				</div></li><li class="listitem"><div class="para">
+					file locks (especially <code class="function">fcntl</code> locks behave in surprising ways, not just in a multi-threaded environment)
+				</div></li></ul></div><div class="para">
+			Library code should avoid manipulating these global process attributes. It should not rely on environment variables, umask, the current working directory and signal masks because these attributes can be inherted from an untrusted source.
+		</div><div class="para">
+			In addition, there are obvious process-wide aspects such as the virtual memory layout, the set of open files and dynamic shared objects, but with the exception of shared objects, these can be manipulated in a relatively isolated way.
+		</div></div></div><div xml:lang="en-US" class="chapter" id="sect-Defensive_Coding-Tasks-Descriptors" lang="en-US"><div class="titlepage"><div><div><h2 class="title">Chapter 5. File Descriptor Management</h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="#idm40898320">5.1. Closing descriptors</a></span></dt><dd><dl><dt><span class="section"><a href="#idm81363664">5.1.1. Error handling during descriptor close</a></span></dt><dt><span class="section"><a href="#idm61020000">5.1.2. Closing descriptors and race conditions</a></span></dt><dt><span class="section"><a href="#idm56381840">5.1.3. Lingering state after close</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Descriptors-Child_Processes">5.2. Preventing file descriptor leaks to child processes</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Descriptors-Limit">5.3. Dealing with the <code class="function">select</code> limit
 </a></span></dt></dl></div><div class="para">
+		File descriptors underlie all input/output mechanisms offered by the system. They are used to implementation the <code class="literal">FILE *</code>-based functions found in <code class="literal">&lt;stdio.h&gt;</code>, and all the file and network communication facilities provided by the Python and Java environments are eventually implemented in them.
+	</div><div class="para">
+		File descriptors are small, non-negative integers in userspace, and are backed on the kernel side with complicated data structures which can sometimes grow very large.
+	</div><div class="section" id="idm40898320"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idm40898320">5.1. Closing descriptors</h2></div></div></div><div class="para">
+			If a descriptor is no longer used by a program and is not closed explicitly, its number cannot be reused (which is problematic in itself, see <a class="xref" href="#sect-Defensive_Coding-Tasks-Descriptors-Limit">Section 5.3, “Dealing with the <code class="function">select</code> limit”</a>), and the kernel resources are not freed. Therefore, it is important to close all descriptors at the earlierst point in time possible, but not earlier.
+		</div><div class="section" id="idm81363664"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idm81363664">5.1.1. Error handling during descriptor close</h3></div></div></div><div class="para">
+				The <code class="function">close</code> system call is always successful in the sense that the passed file descriptor is never valid after the function has been called. However, <code class="function">close</code> still can return an error, for example if there was a file system failure. But this error is not very useful because the absence of an error does not mean that all caches have been emptied and previous writes have been made durable. Programs which need such guarantees must open files with <code class="literal">O_SYNC</code> or use <code class="literal">fsync</code> or <code class="literal">fdatasync</code>, and may also have to <code class="literal">fsync</code> the directory containing the file.
+			</div></div><div class="section" id="idm61020000"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idm61020000">5.1.2. Closing descriptors and race conditions</h3></div></div></div><div class="para">
+				Unlike process IDs, which are recycle only gradually, the kernel always allocates the lowest unused file descriptor when a new descriptor is created. This means that in a multi-threaded program which constantly opens and closes file descriptors, descriptors are reused very quickly. Unless descriptor closing and other operations on the same file descriptor are synchronized (typically, using a mutex), there will be race coniditons and I/O operations will be applied to the wrong file descriptor.
+			</div><div class="para">
+				Sometimes, it is necessary to close a file descriptor concurrently, while another thread might be about to use it in a system call. In order to support this, a program needs to create a single special file descriptor, one on which all I/O operations fail. One way to achieve this is to use <code class="function">socketpair</code>, close one of the descriptors, and call <code class="literal">shutdown(fd, SHUTRDWR)</code> on the other.
+			</div><div class="para">
+				When a descriptor is closed concurrently, the program does not call <code class="function">close</code> on the descriptor. Instead it program uses <code class="function">dup2</code> to replace the descriptor to be closed with the dummy descriptor created earlier. This way, the kernel will not reuse the descriptor, but it will carry out all other steps associated with calling a descriptor (for instance, if the descriptor refers to a stream socket, the peer will be notified).
+			</div><div class="para">
+				This is just a sketch, and many details are missing. Additional data structures are needed to determine when it is safe to really close the descriptor, and proper locking is required for that.
+			</div></div><div class="section" id="idm56381840"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idm56381840">5.1.3. Lingering state after close</h3></div></div></div><div class="para">
+				By default, closing a stream socket returns immediately, and the kernel will try to send the data in the background. This means that it is impossible to implement accurate accounting of network-related resource utilization from userspace.
+			</div><div class="para">
+				The <code class="literal">SO_LINGER</code> socket option alters the behavior of <code class="function">close</code>, so that it will return only after the lingering data has been processed, either by sending it to the peer successfully, or by discarding it after the configured timeout. However, there is no interface which could perform this operation in the background, so a separate userspace thread is needed for each <code class="function">close</code> call, causing scalability issues.
+			</div><div class="para">
+				Currently, there is no application-level countermeasure which applies universally. Mitigation is possible with <span class="application"><strong>iptables</strong></span> (the <code class="literal">connlimit</code> match type in particular) and specialized filtering devices for denial-of-service network traffic.
+			</div><div class="para">
+				These problems are not related to the <code class="literal">TIME_WAIT</code> state commonly seen in <span class="application"><strong>netstat</strong></span> output. The kernel automatically expires such sockets if necessary.
+			</div></div></div><div class="section" id="sect-Defensive_Coding-Tasks-Descriptors-Child_Processes"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">5.2. Preventing file descriptor leaks to child processes</h2></div></div></div><div class="para">
+			Child processes created with <code class="function">fork</code> share the initial set of file descriptors with their parent process. By default, file descriptors are also preserved if a new process image is created with <code class="function">execve</code> (or any of the other functions such as <code class="function">system</code> or <code class="function">posix_spawn</code>).
+		</div><div class="para">
+			Usually, this behavior is not desirable. There are two ways to turn it off, that is, to prevent new process images from inheriting the file descriptors in the parent process:
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					Set the close-on-exec flag on all newly created file descriptors. Traditionally, this flag is controlled by the <code class="literal">FD_CLOEXEC</code> flag, using <code class="literal">F_GETFD</code> and <code class="literal">F_SETFD</code> operations of the <code class="function">fcntl</code> function.
+				</div><div class="para">
+					However, in a multi-threaded process, there is a race condition: a subprocess could have been created between the time the descriptor was created and the <code class="literal">FD_CLOEXEC</code> was set. Therefore, many system calls which create descriptors (such as <code class="function">open</code> and <code class="function">openat</code>) now accept the <code class="function">O_CLOEXEC</code> flag (<code class="function">SOCK_CLOEXEC</code> for <code class="function">socket</code> and <code class="function">socketpair</code>), which cause the <code class="literal">FD_CLOEXEC</code> flag to be set for the file descriptor in an atomic fashion. In addition, a few new systems calls were introduced, such as <code class="function">pipe2</code> and <code class="function">dup3</code>.
+				</div><div class="para">
+					The downside of this approach is that every descriptor needs to receive special treatment at the time of creation, otherwise it is not completely effective.
+				</div></li><li class="listitem"><div class="para">
+					After calling <code class="function">fork</code>, but before creating a new process image with <code class="function">execve</code>, all file descriptors which the child process will not need are closed.
+				</div><div class="para">
+					Traditionally, this was implemented as a loop over file descriptors ranging from <code class="literal">3</code> to <code class="literal">255</code> and later <code class="literal">1023</code>. But this is only an approximatio because it is possible to create file descriptors outside this range easily (see <a class="xref" href="#sect-Defensive_Coding-Tasks-Descriptors-Limit">Section 5.3, “Dealing with the <code class="function">select</code> limit”</a>). Another approach reads <code class="filename">/proc/self/fd</code> and closes the unexpected descriptors listed there, but this approach is much slower.
+				</div></li></ul></div><div class="para">
+			At present, environments which care about file descriptor leakage implement the second approach. OpenJDK 6 and 7 are among them.
+		</div></div><div class="section" id="sect-Defensive_Coding-Tasks-Descriptors-Limit"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">5.3. Dealing with the <code class="function">select</code> limit</h2></div></div></div><div class="para">
+			By default, a user is allowed to open only 1024 files in a single process, but the system administrator can easily change this limit (which is necessary for busy network servers). However, there is another restriction which is more difficult to overcome.
+		</div><div class="para">
+			The <code class="function">select</code> function only supports a maximum of <code class="literal">FD_SETSIZE</code> file descriptors (that is, the maximum permitted value for a file descriptor is <code class="literal">FD_SETSIZE - 1</code>, usually 1023.) If a process opens many files, descriptors may exceed such limits. It is impossible to query such descriptors using <code class="function">select</code>.
+		</div><div class="para">
+			If a library which creates many file descriptors is used in the same process as a library which uses <code class="function">select</code>, at least one of them needs to be changed.  Calls to <code class="function">select</code> can be replaced with calls to <code class="function">poll</code> or another event handling mechanism.
+		</div><div class="para">
+			Alternatively, the library with high descriptor usage can relocate descriptors above the <code class="literal">FD_SETSIZE</code> limit using the following procedure.
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					Create the file descriptor <code class="literal">fd</code> as usual, preferably with the <code class="literal">O_CLOEXEC</code> flag.
+				</div></li><li class="listitem"><div class="para">
+					Before doing anything else with the descriptor <code class="literal">fd</code>, invoke:
+				</div><pre class="programlisting">
+	  <span class="perl_DataType">int</span> newfd = fcntl(fd, F_DUPFD_CLOEXEC, (<span class="perl_DataType">long</span>)FD_SETSIZE);
+</pre></li><li class="listitem"><div class="para">
+					Check that <code class="literal">newfd</code> result is non-negative, otherwise close <code class="literal">fd</code> and report an error, and return.
+				</div></li><li class="listitem"><div class="para">
+					Close <code class="literal">fd</code> and continue to use <code class="literal">newfd</code>.
+				</div></li></ul></div><div class="para">
+			The new descriptor has been allocated above the <code class="literal">FD_SETSIZE</code>. Even though this algorithm is racy in the sense that the <code class="literal">FD_SETSIZE</code> first descriptors could fill up, a very high degree of physical parallelism is required before this becomes a problem.
+		</div></div></div><div xml:lang="en-US" class="chapter" id="chap-Defensive_Coding-Tasks-File_System" lang="en-US"><div class="titlepage"><div><div><h2 class="title">Chapter 6. File system manipulation</h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-File_System-Unowned">6.1. Working with files and directories owned by other users</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-File_System-Foreign">6.2. Accessing the file system as a different user</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-File_System-Limits">6.3. File system limits</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-File_System-Features">6.4. File system features</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-File_System-Free_Space">6.5. Checking free space</a></span></dt></dl></div><div class="para">
+		In this chapter, we discuss general file system manipulation, with a focus on access files and directories to which an other, potentially untrusted user has write access.
+	</div><div class="para">
+		Temporary files are covered in their own chapter, <a class="xref" href="#chap-Defensive_Coding-Tasks-Temporary_Files">Chapter 7, <em>Temporary files</em></a>.
+	</div><div class="section" id="sect-Defensive_Coding-Tasks-File_System-Unowned"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">6.1. Working with files and directories owned by other users</h2></div></div></div><div class="para">
+			Sometimes, it is necessary to operate on files and directories owned by other (potentially untrusted) users. For example, a system administrator could remove the home directory of a user, or a package manager could update a file in a directory which is owned by an application-specific user. This differs from accessing the file system as a specific user; see <a class="xref" href="#sect-Defensive_Coding-Tasks-File_System-Foreign">Section 6.2, “Accessing the file system as a different user”</a>.
+		</div><div class="para">
+			Accessing files across trust boundaries faces several challenges, particularly if an entire directory tree is being traversed:
+		</div><div class="orderedlist"><ol><li class="listitem"><div class="para">
+					Another user might add file names to a writable directory at any time. This can interfere with file creation and the order of names returned by <code class="function">readdir</code>.
+				</div></li><li class="listitem"><div class="para">
+					Merely opening and closing a file can have side effects. For instance, an automounter can be triggered, or a tape device rewound. Opening a file on a local file system can block indefinitely, due to mandatory file locking, unless the <code class="literal">O_NONBLOCK</code> flag is specified.
+				</div></li><li class="listitem"><div class="para">
+					Hard links and symbolic links can redirect the effect of file system operations in unexpected ways. The <code class="literal">O_NOFOLLOW</code> and <code class="literal">AT_SYMLINK_NOFOLLOW</code> variants of system calls only affected final path name component.
+				</div></li><li class="listitem"><div class="para">
+					The structure of a directory tree can change. For example, the parent directory of what used to be a subdirectory within the directory tree being processed could suddenly point outside that directory tree.
+				</div></li></ol></div><div class="para">
+			Files should always be created with the <code class="literal">O_CREAT</code> and <code class="literal">O_EXCL</code> flags, so that creating the file will fail if it already exists. This guards against the unexpected appearance of file names, either due to creation of a new file, or hard-linking of an existing file. In multi-threaded programs, rather than manipulating the umask, create the files with mode <code class="literal">000</code> if possible, and adjust it afterwards with <code class="function">fchmod</code>.
+		</div><div class="para">
+			To avoid issues related to symbolic links and directory tree restructuring, the “<code class="literal">at</code>” variants of system calls have to be used (that is, functions like <code class="function">openat</code>, <code class="function">fchownat</code>, <code class="function">fchmodat</code>, and <code class="function">unlinkat</code>, together with <code class="literal">O_NOFOLLOW</code> or <code class="literal">AT_SYMLINK_NOFOLLOW</code>). Path names passed to these functions must have just a single component (that is, without a slash). When descending, the descriptors of parent directories must be kept open. The missing <code class="literal">opendirat</code> function can be emulated with <code class="literal">openat</code> (with an <code class="literal">O_DIRECTORY</code> flag, to avoid opening special files with side effects), followed by <code class="literal">fdopendir</code>.
+		</div><div class="para">
+			If the “<code class="literal">at</code>” functions are not available, it is possible to emulate them by changing the current directory. (Obviously, this only works if the process is not multi-threaded.) <code class="function">fchdir</code> has to be used to change the current directory, and the descriptors of the parent directories have to be kept open, just as with the “<code class="literal">at</code>”-based approach. <code class="literal">chdir("...")</code> is unsafe because it might ascend outside the intended directory tree.
+		</div><div class="para">
+			This “<code class="literal">at</code>” function emulation is currently required when manipulating extended attributes. In this case, the <code class="function">lsetxattr</code> function can be used, with a relative path name consisting of a single component. This also applies to SELinux contexts and the <code class="function">lsetfilecon</code> function.
+		</div><div class="para">
+			Currently, it is not possible to avoid opening special files <span class="emphasis"><em>and</em></span> changes to files with hard links if the directory containing them is owned by an untrusted user. (Device nodes can be hard-linked, just as regular files.) <code class="function">fchmodat</code> and <code class="function">fchownat</code> affect files whose link count is greater than one. But opening the files, checking that the link count is one with <code class="function">fstat</code>, and using <code class="function">fchmod</code> and <code class="function">fchown</code> on the file descriptor may have unwanted side effects, due to item 2 above. When creating directories, it is therefore important to change the ownership and permissions only after it has been fully created. Until that point, file names are stable, and no files with unexpected hard links can be introduced.
+		</div><div class="para">
+			Similarly, when just reading a directory owned by an untrusted user, it is currently impossible to reliably avoid opening special files.
+		</div><div class="para">
+			There is no workaround against the instability of the file list returned by <code class="function">readdir</code>. Concurrent modification of the directory can result in a list of files being returned which never actually existed on disk.
+		</div><div class="para">
+			Hard links and symbolic links can be safely deleted using <code class="function">unlinkat</code> without further checks because deletion only affects the name within the directory tree being processed.
+		</div></div><div class="section" id="sect-Defensive_Coding-Tasks-File_System-Foreign"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">6.2. Accessing the file system as a different user</h2></div></div></div><div class="para">
+			This section deals with access to the file system as a specific user. This is different from accessing files and directories owned by a different, potentially untrusted user; see <a class="xref" href="#sect-Defensive_Coding-Tasks-File_System-Foreign">Section 6.2, “Accessing the file system as a different user”</a>.
+		</div><div class="para">
+			One approach is to spawn a child process which runs under the target user and group IDs (both effective and real IDs). Note that this child process can block indefinitely, even when processing regular files only. For example, a special FUSE file system could cause the process to hang in uninterruptible sleep inside a <code class="function">stat</code> system call.
+		</div><div class="para">
+			An existing process could change its user and group ID using <code class="function">setfsuid</code> and <code class="function">setfsgid</code>. (These functions are preferred over <code class="function">seteuid</code> and <code class="function">setegid</code> because they do not allow the impersonated user to send signals to the process.) These functions are not thread safe. In multi-threaded processes, these operations need to be performed in a single-threaded child process. Unexpected blocking may occur as well.
+		</div><div class="para">
+			It is not recommended to try to reimplement the kernel permission checks in user space because the required checks are complex. It is also very difficult to avoid race conditions during path name resolution.
+		</div></div><div class="section" id="sect-Defensive_Coding-Tasks-File_System-Limits"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">6.3. File system limits</h2></div></div></div><div class="para">
+			For historical reasons, there are preprocessor constants such as <code class="literal">PATH_MAX</code>, <code class="literal">NAME_MAX</code>. However, on most systems, the length of canonical path names (absolute path names with all symbolic links resolved, as returned by <code class="function">realpath</code> or <code class="function">canonicalize_file_name</code>) can exceed <code class="literal">PATH_MAX</code> bytes, and individual file name components can be longer than <code class="literal">NAME_MAX</code>. This is also true of the <code class="literal">_PC_PATH_MAX</code> and <code class="literal">_PC_NAME_MAX</code> values returned by <code class="function">pathconf</code>, and the <code class="literal">f_namemax</code> member of <code class="literal">struct statvfs</code>. Therefore, these constants should not be used. This is also reason why the <code class="function">readdir_r</code> should never be used (instead, use <code class="function">readdir</code>).
+		</div><div class="para">
+			You should not write code in a way that assumes that there is an upper limit on the number of subdirectories of a directory, the number of regular files in a directory, or the link count of an inode.
+		</div></div><div class="section" id="sect-Defensive_Coding-Tasks-File_System-Features"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">6.4. File system features</h2></div></div></div><div class="para">
+			Not all file systems support all features. This makes it very difficult to write general-purpose tools for copying files. For example, a copy operation intending to preserve file permissions will generally fail when copying to a FAT file system.
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					Some file systems are case-insensitive. Most should be case-preserving, though.
+				</div></li><li class="listitem"><div class="para">
+					Name length limits vary greatly, from eight to thousands of bytes. Path length limits differ as well. Most systems impose an upper bound on path names passed to the kernel, but using relative path names, it is possible to create and access files whose absolute path name is essentially of unbounded length.
+				</div></li><li class="listitem"><div class="para">
+					Some file systems do not store names as fairly unrestricted byte sequences, as it has been traditionally the case on GNU systems. This means that some byte sequences (outside the POSIX safe character set) are not valid names. Conversely, names of existing files may not be representable as byte sequences, and the files are thus inaccessible on GNU systems. Some file systems perform Unicode canonicalization on file names. These file systems preserve case, but reading the name of a just-created file using <code class="function">readdir</code> might still result in a different byte sequence.
+				</div></li><li class="listitem"><div class="para">
+					Permissions and owners are not universally supported (and SUID/SGID bits may not be available). For example, FAT file systems assign ownership based on a mount option, and generally mark all files as executable. Any attempt to change permissions would result in an error.
+				</div></li><li class="listitem"><div class="para">
+					Non-regular files (device nodes, FIFOs) are not generally available.
+				</div></li><li class="listitem"><div class="para">
+					Only on some file systems, files can have holes, that is, not all of their contents is backed by disk storage.
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">ioctl</code> support (even fairly generic functionality such as <code class="literal">FIEMAP</code> for discovering physical file layout and holes) is file-system-specific.
+				</div></li><li class="listitem"><div class="para">
+					Not all file systems support extended attributes, ACLs and SELinux metadata. Size and naming restriction on extended attributes vary.
+				</div></li><li class="listitem"><div class="para">
+					Hard links may not be supported at all (FAT) or only within the same directory (AFS). Symbolic links may not be available, either. Reflinks (hard links with copy-on-write semantics) are still very rare. Recent systems restrict creation of hard links to users which own the target file or have read/write access to it, but older systems do not.
+				</div></li><li class="listitem"><div class="para">
+					Renaming (or moving) files using <code class="function">rename</code> can fail (even when <code class="function">stat</code> indicates that the source and target directories are located on the same file system). This system call should work if the old and new paths are located in the same directory, though.
+				</div></li><li class="listitem"><div class="para">
+					Locking semantics vary among file systems. This affects advisory and mandatory locks. For example, some network file systems do not allow deleting files which are opened by any process.
+				</div></li><li class="listitem"><div class="para">
+					Resolution of time stamps varies from two seconds to nanoseconds. Not all time stamps are available on all file systems. File creation time (<span class="emphasis"><em>birth time</em></span>) is not exposed over the <code class="function">stat</code>/<code class="function">fstat</code> interface, even if stored by the file system.
+				</div></li></ul></div></div><div class="section" id="sect-Defensive_Coding-Tasks-File_System-Free_Space"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">6.5. Checking free space</h2></div></div></div><div class="para">
+			The <code class="function">statvfs</code> and <code class="function">fstatvfs</code> functions allow programs to examine the number of available blocks and inodes, through the members <code class="literal">f_bfree</code>, <code class="literal">f_bavail</code>, <code class="literal">f_ffree</code>, and <code class="literal">f_favail</code> of <code class="literal">struct statvfs</code>. Some file systems return fictional values in the <code class="literal">f_ffree</code> and <code class="literal">f_favail</code> fields, so the only reliable way to discover if the file system still has space for a file is to try to create it. The <code class="literal">f_bfree</code> field should be reasonably accurate, though.
+		</div></div></div><div xml:lang="en-US" class="chapter" id="chap-Defensive_Coding-Tasks-Temporary_Files" lang="en-US"><div class="titlepage"><div><div><h2 class="title">Chapter 7. Temporary files</h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="#chap-Defensive_Coding-Tasks-Temporary_Files-Location">7.1. Obtaining the location of temporary directory</a></span></dt><dt><span class="section"><a href="#idm51805696">7.2. Named temporary files</a></span></dt><dt><span class="section"><a href="#idm96363904">7.3. Temporary files without names</a></span></dt><dt><span class="section"><a href="#chap-Defensive_Coding-Tasks-Temporary_Directory">7.4. Temporary directories</a></span></dt><dt><span class="section"><a href="#idm77045280">7.5. Compensating for unsafe file creation</a></span></dt></dl></div><div class="para">
+		In this chapter, we describe how to create temporary files and directories, how to remove them, and how to work with programs which do not create files in ways that a safe with a shared directory for temporary files. General file system manipulation is treated in a separate chapter, <a class="xref" href="#chap-Defensive_Coding-Tasks-File_System">Chapter 6, <em>File system manipulation</em></a>.
+	</div><div class="para">
+		Secure creation of temporary files has four different aspects.
+	</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+				The location of the directory for temporary files must be obtained in a secure manner (that is, untrusted environment variables must be ignored, see <a class="xref" href="#sect-Defensive_Coding-Tasks-secure_getenv">Section 8.3.1, “Accessing environment variables”</a>).
+			</div></li><li class="listitem"><div class="para">
+				A new file must be created. Reusing an existing file must be avoided (the <code class="filename">/tmp</code> race condition). This is tricky because traditionally, system-wide temporary directories shared by all users are used.
+			</div></li><li class="listitem"><div class="para">
+				The file must be created in a way that makes it impossible for other users to open it.
+			</div></li><li class="listitem"><div class="para">
+				The descriptor for the temporary file should not leak to subprocesses.
+			</div></li></ul></div><div class="para">
+		All functions mentioned below will take care of these aspects.
+	</div><div class="para">
+		Traditionally, temporary files are often used to reduce memory usage of programs. More and more systems use RAM-based file systems such as <code class="literal">tmpfs</code> for storing temporary files, to increase performance and decrease wear on Flash storage. As a result, spooling data to temporary files does not result in any memory savings, and the related complexity can be avoided if the data is kept in process memory.
+	</div><div class="section" id="chap-Defensive_Coding-Tasks-Temporary_Files-Location"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">7.1. Obtaining the location of temporary directory</h2></div></div></div><div class="para">
+			Some functions below need the location of a directory which stores temporary files. For C/C++ programs, use the following steps to obtain that directory:
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					Use <code class="function">secure_getenv</code> to obtain the value of the <code class="literal">TMPDIR</code> environment variable. If it is set, convert the path to a fully-resolved absolute path, using <code class="literal">realpath(path, NULL)</code>. Check if the new path refers to a directory and is writeable. In this case, use it as the temporary directory.
+				</div></li><li class="listitem"><div class="para">
+					Fall back to <code class="filename">/tmp</code>.
+				</div></li></ul></div><div class="para">
+			In Python, you can use the <code class="varname">tempfile.tempdir</code> variable.
+		</div><div class="para">
+			Java does not support SUID/SGID programs, so you can use the <code class="function">java.lang.System.getenv(String)</code> method to obtain the value of the <code class="literal">TMPDIR</code> environment variable, and follow the two steps described above. (Java's default directory selection does not honor <code class="literal">TMPDIR</code>.)
+		</div></div><div class="section" id="idm51805696"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idm51805696">7.2. Named temporary files</h2></div></div></div><div class="para">
+			The <code class="function">mkostemp</code> function creates a named temporary file. You should specify the <code class="literal">O_CLOEXEC</code> flag to avoid file descriptor leaks to subprocesses. (Applications which do not use multiple threads can also use <code class="function">mkstemp</code>, but libraries should use <code class="function">mkostemp</code>.) For determining the directory part of the file name pattern, see <a class="xref" href="#chap-Defensive_Coding-Tasks-Temporary_Files-Location">Section 7.1, “Obtaining the location of temporary directory”</a>.
+		</div><div class="para">
+			The file is not removed automatically. It is not safe to rename or delete the file before processing, or transform the name in any way (for example, by adding a file extension). If you need multiple temporary files, call <code class="function">mkostemp</code> multiple times. Do not create additional file names derived from the name provided by a previous <code class="function">mkostemp</code> call. However, it is safe to close the descriptor returned by <code class="function">mkostemp</code> and reopen the file using the generated name.
+		</div><div class="para">
+			The Python class <code class="literal">tempfile.NamedTemporaryFile</code> provides similar functionality, except that the file is deleted automatically by default. Note that you may have to use the <code class="literal">file</code> attribute to obtain the actual file object because some programming interfaces cannot deal with file-like objects. The C function <code class="function">mkostemp</code> is also available as <code class="function">tempfile.mkstemp</code>.
+		</div><div class="para">
+			In Java, you can use the <code class="function">java.io.File.createTempFile(String, String, File)</code> function, using the temporary file location determined according to <a class="xref" href="#chap-Defensive_Coding-Tasks-Temporary_Files-Location">Section 7.1, “Obtaining the location of temporary directory”</a>. Do not use <code class="function">java.io.File.deleteOnExit()</code> to delete temporary files, and do not register a shutdown hook for each temporary file you create. In both cases, the deletion hint cannot be removed from the system if you delete the temporary file prior to termination of the VM, causing a memory leak.
+		</div></div><div class="section" id="idm96363904"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idm96363904">7.3. Temporary files without names</h2></div></div></div><div class="para">
+			The <code class="function">tmpfile</code> function creates a temporary file and immediately deletes it, while keeping the file open. As a result, the file lacks a name and its space is deallocated as soon as the file descriptor is closed (including the implicit close when the process terminates). This avoids cluttering the temporary directory with orphaned files.
+		</div><div class="para">
+			Alternatively, if the maximum size of the temporary file is known beforehand, the <code class="function">fmemopen</code> function can be used to create a <code class="literal">FILE *</code> object which is backed by memory.
+		</div><div class="para">
+			In Python, unnamed temporary files are provided by the <code class="literal">tempfile.TemporaryFile</code> class, and the <code class="literal">tempfile.SpooledTemporaryFile</code> class provides a way to avoid creation of small temporary files.
+		</div><div class="para">
+			Java does not support unnamed temporary files.
+		</div></div><div class="section" id="chap-Defensive_Coding-Tasks-Temporary_Directory"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">7.4. Temporary directories</h2></div></div></div><div class="para">
+			The <code class="function">mkdtemp</code> function can be used to create a temporary directory. (For determining the directory part of the file name pattern, see <a class="xref" href="#chap-Defensive_Coding-Tasks-Temporary_Files-Location">Section 7.1, “Obtaining the location of temporary directory”</a>.) The directory is not automatically removed. In Python, this function is available as <code class="function">tempfile.mkdtemp</code>. In Java 7, temporary directories can be created using the <code class="function">java.nio.file.Files.createTempDirectory(Path, String, FileAttribute...)</code> function.
+		</div><div class="para">
+			When creating files in the temporary directory, use automatically generated names, e.g., derived from a sequential counter. Files with externally provided names could be picked up in unexpected contexts, and crafted names could actually point outside of the tempoary directory (due to <span class="emphasis"><em>directory traversal</em></span>).
+		</div><div class="para">
+			Removing a directory tree in a completely safe manner is complicated. Unless there are overriding performance concerns, the <span class="application"><strong>rm</strong></span> program should be used, with the <code class="option">-rf</code> and <code class="option">--</code> options.
+		</div></div><div class="section" id="idm77045280"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idm77045280">7.5. Compensating for unsafe file creation</h2></div></div></div><div class="para">
+			There are two ways to make a function or program which excepts a file name safe for use with temporary files. See <a class="xref" href="#sect-Defensive_Coding-Tasks-Processes-Creation">Section 8.1, “Safe process creation”</a>, for details on subprocess creation.
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					Create a temporary directory and place the file there. If possible, run the program in a subprocess which uses the temporary directory as its current directory, with a restricted environment. Use generated names for all files in that temporary directory. (See <a class="xref" href="#chap-Defensive_Coding-Tasks-Temporary_Directory">Section 7.4, “Temporary directories”</a>.)
+				</div></li><li class="listitem"><div class="para">
+					Create the temporary file and pass the generated file name to the function or program. This only works if the function or program can cope with a zero-length existing file. It is safe only under additional assumptions:
+				</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+							The function or program must not create additional files whose name is derived from the specified file name or are otherwise predictable.
+						</div></li><li class="listitem"><div class="para">
+							The function or program must not delete the file before processing it.
+						</div></li><li class="listitem"><div class="para">
+							It must not access any existing files in the same directory.
+						</div></li></ul></div><div class="para">
+					It is often difficult to check whether these additional assumptions are matched, therefore this approach is not recommended.
+				</div></li></ul></div></div></div><div xml:lang="en-US" class="chapter" id="sect-Defensive_Coding-Tasks-Processes" lang="en-US"><div class="titlepage"><div><div><h2 class="title">Chapter 8. Processes</h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Processes-Creation">8.1. Safe process creation</a></span></dt><dd><dl><dt><span class="section"><a href="#idm76324400">8.1.1. Obtaining the program path and the command line template</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Processes-execve">8.1.2. Bypassing the shell</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Processes-environ">8.1.3. Specifying the process environment</a></span></dt><dt><span class="section"><a href="#idm68155968">8.1.4. Robust argument list processing</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Processes-Command_Line_Visibility">8.1.5. Passi
 ng secrets to subprocesses</a></span></dt></dl></dd><dt><span class="section"><a href="#idm82943808">8.2. Handling child process termination</a></span></dt><dt><span class="section"><a href="#idm41161392">8.3. <code class="literal">SUID</code>/<code class="literal">SGID</code> processes</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-secure_getenv">8.3.1. Accessing environment variables</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Processes-Daemons">8.4. Daemons</a></span></dt><dt><span class="section"><a href="#idm51054224">8.5. Semantics of command line arguments</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Processes-Fork-Parallel">8.6. <code class="function">fork</code> as a primitive for parallelism</a></span></dt></dl></div><div class="section" id="sect-Defensive_Coding-Tasks-Processes-Creation"><div class="titlepage"><div><div keep-together.within-column
 ="always"><h2 class="title">8.1. Safe process creation</h2></div></div></div><div class="para">
+			This section describes how to create new child processes in a safe manner. In addition to the concerns addressed below, there is the possibility of file descriptor leaks, see <a class="xref" href="#sect-Defensive_Coding-Tasks-Descriptors-Child_Processes">Section 5.2, “Preventing file descriptor leaks to child processes”</a>.
+		</div><div class="section" id="idm76324400"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idm76324400">8.1.1. Obtaining the program path and the command line template</h3></div></div></div><div class="para">
+				The name and path to the program being invoked should be hard-coded or controlled by a static configuration file stored at a fixed location (at an file system absolute path). The same applies to the template for generating the command line.
+			</div><div class="para">
+				The configured program name should be an absolute path. If it is a relative path, the contents of the <code class="envar">PATH</code> must be obtained in s secure manner (see <a class="xref" href="#sect-Defensive_Coding-Tasks-secure_getenv">Section 8.3.1, “Accessing environment variables”</a>). If the <code class="envar">PATH</code> variable is not set or untrusted, the safe default <code class="literal">/bin:/usr/bin</code> must be used.
+			</div><div class="para">
+				If too much flexibility is provided here, it may allow invocation of arbitrary programs without proper authorization.
+			</div></div><div class="section" id="sect-Defensive_Coding-Tasks-Processes-execve"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">8.1.2. Bypassing the shell</h3></div></div></div><div class="para">
+				Child processes should be created without involving the system shell.
+			</div><div class="para">
+				For C/C++, <code class="function">system</code> should not be used. The <code class="function">posix_spawn</code> function can be used instead, or a combination <code class="function">fork</code> and <code class="function">execve</code>. (In some cases, it may be preferable to use <code class="function">vfork</code> or the Linux-specific <code class="function">clone</code> system call instead of <code class="function">fork</code>.)
+			</div><div class="para">
+				In Python, the <code class="literal">subprocess</code> module bypasses the shell by default (when the <code class="literal">shell</code> keyword argument is not set to true). <code class="function">os.system</code> should not be used.
+			</div><div class="para">
+				The Java class <span class="type">java.lang.ProcessBuilder</span> can be used to create subprocesses without interference from the system shell.
+			</div><div class="important"><div class="admonition_header"><h2>Portability notice</h2></div><div class="admonition"><div class="para">
+					On Windows, there is no argument vector, only a single argument string. Each application is responsible for parsing this string into an argument vector. There is considerable variance among the quoting style recognized by applications. Some of them expand shell wildcards, others do not. Extensive application-specific testing is required to make this secure.
+				</div></div></div><div class="para">
+				Note that some common applications (notably <span class="application"><strong>ssh</strong></span>) unconditionally introduce the use of a shell, even if invoked directly without a shell. It is difficult to use these applications in a secure manner. In this case, untrusted data should be supplied by other means. For example, standard input could be used, instead of the command line.
+			</div></div><div class="section" id="sect-Defensive_Coding-Tasks-Processes-environ"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">8.1.3. Specifying the process environment</h3></div></div></div><div class="para">
+				Child processes should be created with a minimal set of environment variables. This is absolutely essential if there is a trust transition involved, either when the parent process was created, or during the creation of the child process.
+			</div><div class="para">
+				In C/C++, the environment should be constructed as an array of strings and passed as the <code class="varname">envp</code> argument to <code class="function">posix_spawn</code> or <code class="function">execve</code>. The functions <code class="function">setenv</code>, <code class="function">unsetenv</code> and <code class="function">putenv</code> should not be used. They are not thread-safe and suffer from memory leaks.
+			</div><div class="para">
+				Python programs need to specify a <code class="literal">dict</code> for the the <code class="varname">env</code> argument of the <code class="function">subprocess.Popen</code> constructor. The Java class <code class="literal">java.lang.ProcessBuilder</code> provides a <code class="function">environment()</code> method, which returns a map that can be manipulated.
+			</div><div class="para">
+				The following list provides guidelines for selecting the set of environment variables passed to the child process.
+			</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+						<code class="envar">PATH</code> should be initialized to <code class="literal">/bin:/usr/bin</code>.
+					</div></li><li class="listitem"><div class="para">
+						<code class="envar">USER</code> and <code class="envar">HOME</code> can be inhereted from the parent process environment, or they can be initialized from the <code class="literal">pwent</code> structure for the user. 
+					</div></li><li class="listitem"><div class="para">
+						The <code class="envar">DISPLAY</code> and <code class="envar">XAUTHORITY</code> variables should be passed to the subprocess if it is an X program. Note that this will typically not work across trust boundaries because <code class="envar">XAUTHORITY</code> refers to a file with <code class="literal">0600</code> permissions.
+					</div></li><li class="listitem"><div class="para">
+						The location-related environment variables <code class="envar">LANG</code>, <code class="envar">LANGUAGE</code>, <code class="envar">LC_ADDRESS</code>, <code class="envar">LC_ALL</code>, <code class="envar">LC_COLLATE</code>, <code class="envar">LC_CTYPE</code>, <code class="envar">LC_IDENTIFICATION</code>, <code class="envar">LC_MEASUREMENT</code>, <code class="envar">LC_MESSAGES</code>, <code class="envar">LC_MONETARY</code>, <code class="envar">LC_NAME</code>, <code class="envar">LC_NUMERIC</code>, <code class="envar">LC_PAPER</code>, <code class="envar">LC_TELEPHONE</code> and <code class="envar">LC_TIME</code> can be passed to the subprocess if present.
+					</div></li><li class="listitem"><div class="para">
+						The called process may need application-specific environment variables, for example for passing passwords. (See <a class="xref" href="#sect-Defensive_Coding-Tasks-Processes-Command_Line_Visibility">Section 8.1.5, “Passing secrets to subprocesses”</a>.)
+					</div></li><li class="listitem"><div class="para">
+						All other environment variables should be dropped. Names for new environment variables should not be accepted from untrusted sources.
+					</div></li></ul></div></div><div class="section" id="idm68155968"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idm68155968">8.1.4. Robust argument list processing</h3></div></div></div><div class="para">
+				When invoking a program, it is sometimes necessary to include data from untrusted sources. Such data should be check against embedded <code class="literal">NUL</code> characters because the system APIs will sliently truncate argument strings at the first <code class="literal">NUL</code> character.
+			</div><div class="para">
+				The following recommendations assume that the program being invoked uses GNU-style option processing using <code class="function">getopt_long</code>. This convention is widely used, but it is just that, and individual programs might interpret a command line in a different way.
+			</div><div class="para">
+				If the untrusted data has to go into an option, use the <code class="literal">--option-name=VALUE</code> syntax, placing the option and its value into the same command line argument. This avoids any potential confusion if the data starts with <code class="literal">-</code>.
+			</div><div class="para">
+				For positional arguments, terminate the option list with a single <code class="option">--</code> marker after the last option, and include the data at the right position. The <code class="option">--</code> marker terminates option processing, and the data will not be treated as an option even if it starts with a dash.
+			</div></div><div class="section" id="sect-Defensive_Coding-Tasks-Processes-Command_Line_Visibility"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">8.1.5. Passing secrets to subprocesses</h3></div></div></div><div class="para">
+				The command line (the name of the program and its argument) of a running process is traditionally available to all local users. The called program can overwrite this information, but only after it has run for a bit of time, during which the information may have been read by other processes. However, on Linux, the process environment is restricted to the user who runs the process. Therefore, if you need a convenient way to pass a password to a child process, use an environment variable, and not a command line argument. (See <a class="xref" href="#sect-Defensive_Coding-Tasks-Processes-environ">Section 8.1.3, “Specifying the process environment”</a>.)
+			</div><div class="important"><div class="admonition_header"><h2>Portability notice</h2></div><div class="admonition"><div class="para">
+					On some UNIX-like systems (notably Solaris), environment variables can be read by any system user, just like command lines.
+				</div></div></div><div class="para">
+				If the environment-based approach cannot be used due to portability concerns, the data can be passed on standard input. Some programs (notably <span class="application"><strong>gpg</strong></span>) use special file descriptors whose numbers are specified on the command line. Temporary files are an option as well, but they might give digital forensics access to sensitive data (such as passphrases) because it is difficult to safely delete them in all cases.
+			</div></div></div><div class="section" id="idm82943808"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idm82943808">8.2. Handling child process termination</h2></div></div></div><div class="para">
+			When child processes terminate, the parent process is signalled. A stub of the terminated processes (a <span class="emphasis"><em>zombie</em></span>, shown as <code class="literal">&lt;defunct&gt;</code> by <span class="application"><strong>ps</strong></span>) is kept around until the status information is collected (<span class="emphasis"><em>reaped</em></span>) by the parent process. Over the years, several interfaces for this have been invented:
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					The parent process calls <code class="function">wait</code>, <code class="function">waitpid</code>, <code class="function">waitid</code>, <code class="function">wait3</code> or <code class="function">wait4</code>, without specifying a process ID. This will deliver any matching process ID. This approach is typically used from within event loops.
+				</div></li><li class="listitem"><div class="para">
+					The parent process calls <code class="function">waitpid</code>, <code class="function">waitid</code>, or <code class="function">wait4</code>, with a specific process ID. Only data for the specific process ID is returned. This is typically used in code which spawns a single subprocess in a synchronous manner.
+				</div></li><li class="listitem"><div class="para">
+					The parent process installs a handler for the <code class="literal">SIGCHLD</code> signal, using <code class="function">sigaction</code>, and specifies to the <code class="literal">SA_NOCLDWAIT</code> flag. This approach could be used by event loops as well.
+				</div></li></ul></div><div class="para">
+			None of these approaches can be used to wait for child process terminated in a completely thread-safe manner. The parent process might execute an event loop in another thread, which could pick up the termination signal. This means that libraries typically cannot make free use of child processes (for example, to run problematic code with reduced privileges in a separate address space).
+		</div><div class="para">
+			At the moment, the parent process should explicitly wait for termination of the child process using <code class="function">waitpid</code> or <code class="function">waitpid</code>, and hope that the status is not collected by an event loop first.
+		</div></div><div class="section" id="idm41161392"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idm41161392">8.3. <code class="literal">SUID</code>/<code class="literal">SGID</code> processes</h2></div></div></div><div class="para">
+			Programs can be marked in the file system to indicate to the kernel that a trust transition should happen if the program is run. The <code class="literal">SUID</code> file permission bit indicates that an executable should run with the effective user ID equal to the owner of the executable file. Similarly, with the <code class="literal">SGID</code> bit, the effective group ID is set to the group of the executable file.
+		</div><div class="para">
+			Linux supports <span class="emphasis"><em>fscaps</em></span>, which can grant additional capabilities to a process in a finer-grained manner. Additional mechanisms can be provided by loadable security modules.
+		</div><div class="para">
+			When such a trust transition has happened, the process runs in a potentially hostile environment. Additional care is necessary not to rely on any untrusted information. These concerns also apply to libraries which can be linked into such processes.
+		</div><div class="section" id="sect-Defensive_Coding-Tasks-secure_getenv"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">8.3.1. Accessing environment variables</h3></div></div></div><div class="para">
+				The following steps are required so that a program does not accidentally pick up untrusted data from environment variables.
+			</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+						Compile your C/C++ sources with <code class="literal">-D_GNU_SOURCE</code>. The Autoconf macro <code class="literal">AC_GNU_SOURCE</code> ensures this.
+					</div></li><li class="listitem"><div class="para">
+						Check for the presence of the <code class="function">secure_getenv</code> and <code class="function">__secure_getenv</code> function. The Autoconf directive <code class="literal">AC_CHECK_FUNCS([__secure_getenv secure_getenv])</code> performs these checks.
+					</div></li><li class="listitem"><div class="para">
+						Arrange for a proper definition of the <code class="function">secure_getenv</code> function. See <a class="xref" href="#ex-Defensive_Coding-Tasks-secure_getenv">Example 8.1, “Obtaining a definition for <code class="function">secure_getenv</code>”</a>.
+					</div></li><li class="listitem"><div class="para">
+						Use <code class="function">secure_getenv</code> instead of <code class="function">getenv</code> to obtain the value of critical environment variables. <code class="function">secure_getenv</code> will pretend the variable has not bee set if the process environment is not trusted.
+					</div></li></ul></div><div class="para">
+				Critical environment variables are debugging flags, configuration file locations, plug-in and log file locations, and anything else that might be used to bypass security restrictions or cause a privileged process to behave in an unexpected way.
+			</div><div class="para">
+				Either the <code class="function">secure_getenv</code> function or the <code class="function">__secure_getenv</code> is available from GNU libc.
+			</div><div class="example" id="ex-Defensive_Coding-Tasks-secure_getenv"><h6>Example 8.1. Obtaining a definition for <code class="function">secure_getenv</code></h6><div class="example-contents"><pre class="programlisting">
+
+<span class="perl_Others">#include &lt;stdlib.h&gt;</span><span class="perl_Others"></span>
+<span class="perl_Others"></span>
+<span class="perl_Others">#ifndef HAVE_SECURE_GETENV</span><span class="perl_Others"></span>
+<span class="perl_Others"></span><span class="perl_Others">#  ifdef HAVE__SECURE_GETENV</span><span class="perl_Others"></span>
+<span class="perl_Others"></span><span class="perl_Others">#    define secure_getenv __secure_getenv</span><span class="perl_Others"></span>
+<span class="perl_Others"></span><span class="perl_Others">#  else</span><span class="perl_Others"></span>
+<span class="perl_Others"></span><span class="perl_Others">#    error neither secure_getenv nor __secure_getenv are available</span><span class="perl_Others"></span>
+<span class="perl_Others"></span><span class="perl_Others">#  endif</span><span class="perl_Others"></span>
+<span class="perl_Others"></span><span class="perl_Others">#endif</span><span class="perl_Others"></span>
+<span class="perl_Others"></span>
+</pre></div></div><br class="example-break" /></div></div><div class="section" id="sect-Defensive_Coding-Tasks-Processes-Daemons"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">8.4. Daemons</h2></div></div></div><div class="para">
+			Background processes providing system services (<span class="emphasis"><em>daemons</em></span>) need to decouple themselves from the controlling terminal and the parent process environment:
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					Fork.
+				</div></li><li class="listitem"><div class="para">
+					In the child process, call <code class="function">setsid</code>. The parent process can simply exit (using <code class="function">_exit</code>, to avoid running clean-up actions twice).
+				</div></li><li class="listitem"><div class="para">
+					In the child process, fork again. Processing continues in the child process. Again, the parent process should just exit.
+				</div></li><li class="listitem"><div class="para">
+					Replace the descriptors 0, 1, 2 with a descriptor for <code class="filename">/dev/null</code>. Logging should be redirected to <span class="application"><strong>syslog</strong></span>.
+				</div></li></ul></div><div class="para">
+			Older instructions for creating daemon processes recommended a call to <code class="literal">umask(0)</code>. This is risky because it often leads to world-writable files and directories, resulting in security vulnerabilities such as arbitrary process termination by untrusted local users, or log file truncation. If the <span class="emphasis"><em>umask</em></span> needs setting, a restrictive value such as <code class="literal">027</code> or <code class="literal">077</code> is recommended.
+		</div><div class="para">
+			Other aspects of the process environment may have to changed as well (environment variables, signal handler disposition).
+		</div><div class="para">
+			It is increasingly common that server processes do not run as background processes, but as regular foreground process under a supervising master process (such as <span class="application"><strong>systemd</strong></span>). Server processes should offer a command line option which disables forking and replacement of the standard output and standard error streams. Such an option is also useful for debugging.
+		</div></div><div class="section" id="idm51054224"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idm51054224">8.5. Semantics of command line arguments</h2></div></div></div><div class="para">
+			After process creation and option processing, it is up to the child process to interpret the arguments. Arguments can be file names, host names, or URLs, and many other things. URLs can refer to the local network, some server on the Internet, or to the local file system. Some applications even accept arbitrary code in arguments (for example, <span class="application"><strong>python</strong></span> with the <code class="option">-c</code> option).
+		</div><div class="para">
+			Similar concerns apply to environment variables, the contents of the current directory and its subdirectories. 
+		</div><div class="para">
+			Consequently, careful analysis is required if it is safe to pass untrusted data to another program.
+		</div></div><div class="section" id="sect-Defensive_Coding-Tasks-Processes-Fork-Parallel"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">8.6. <code class="function">fork</code> as a primitive for parallelism</h2></div></div></div><div class="para">
+			A call to <code class="function">fork</code> which is not immediately followed by a call to <code class="function">execve</code> (perhaps after rearranging and closing file descriptors) is typically unsafe, especially from a library which does not control the state of the entire process. Such use of <code class="function">fork</code> should be replaced with proper child processes or threads.
+		</div></div></div><div xml:lang="en-US" class="chapter" id="chap-Defensive_Coding-Tasks-Serialization" lang="en-US"><div class="titlepage"><div><div><h2 class="title">Chapter 9. Serialization and Deserialization</h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Serialization-Decoders">9.1. Recommendations for manually written decoders</a></span></dt><dt><span class="section"><a href="#idm34915552">9.2. Protocol design</a></span></dt><dt><span class="section"><a href="#idm61055792">9.3. Library support for deserialization</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Serialization-XML">9.4. XML serialization</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Serialization-XML-External">9.4.1. External references</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Serialization-XML-Entities">9.4.2. Entity expansion</a></sp
 an></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Serialization-XML-XInclude">9.4.3. XInclude processing</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Serialization-XML-Validation">9.4.4. Algorithmic complexity of XML validation</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Serialization-XML-Expat">9.4.5. Using Expat for XML parsing</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse">9.4.6. Using OpenJDK for XML parsing and validation</a></span></dt></dl></dd><dt><span class="section"><a href="#idm69258384">9.5. Protocol Encoders</a></span></dt></dl></div><div class="para">
+		Protocol decoders and file format parsers are often the most-exposed part of an application because they are exposed with little or no user interaction and before any authentication and security checks are made. They are also difficult to write robustly in languages which are not memory-safe.
+	</div><div class="section" id="sect-Defensive_Coding-Tasks-Serialization-Decoders"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">9.1. Recommendations for manually written decoders</h2></div></div></div><div class="para">
+			For C and C++, the advice in <a class="xref" href="#sect-Defensive_Coding-C-Pointers">Section 1.1.2, “Recommendations for pointers and array handling”</a> applies. In addition, avoid non-character pointers directly into input buffers. Pointer misalignment causes crashes on some architectures.
+		</div><div class="para">
+			When reading variable-sized objects, do not allocate large amounts of data solely based on the value of a size field. If possible, grow the data structure as more data is read from the source, and stop when no data is available. This helps to avoid denial-of-service attacks where little amounts of input data results in enormous memory allocations during decoding. Alternatively, you can impose reasonable bounds on memory allocations, but some protocols do not permit this.
+		</div></div><div class="section" id="idm34915552"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idm34915552">9.2. Protocol design</h2></div></div></div><div class="para">
+			Binary formats with explicit length fields are more difficult to parse robustly than those where the length of dynamically-sized elements is derived from sentinel values. A protocol which does not use length fields and can be written in printable ASCII characters simplifies testing and debugging. However, binary protocols with length fields may be more efficient to parse.
+		</div></div><div class="section" id="idm61055792"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idm61055792">9.3. Library support for deserialization</h2></div></div></div><div class="para">
+			For some languages, generic libraries are available which allow to serialize and deserialize user-defined objects. The deserialization part comes in one of two flavors, depending on the library. The first kind uses type information in the data stream to control which objects are instantiated. The second kind uses type definitions supplied by the programmer. The first one allows arbitrary object instantiation, the second one generally does not.
+		</div><div class="para">
+			The following serialization frameworks are in the first category, are known to be unsafe, and must not be used for untrusted data:
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					Python's <span class="package">pickle</span> and <span class="package">cPickle</span> modules
+				</div></li><li class="listitem"><div class="para">
+					Perl's <span class="package">Storable</span> package
+				</div></li><li class="listitem"><div class="para">
+					Java serialization (<span class="type">java.io.ObjectInputStream</span>)
+				</div></li><li class="listitem"><div class="para">
+					PHP serialization (<code class="function">unserialize</code>)
+				</div></li><li class="listitem"><div class="para">
+					Most implementations of YAML
+				</div></li></ul></div><div class="para">
+			When using a type-directed deserialization format where the types of the deserialized objects are specified by the programmer, make sure that the objects which can be instantiated cannot perform any destructive actions in their destructors, even when the data members have been manipulated.
+		</div><div class="para">
+			JSON decoders do not suffer from this problem. But you must not use the <code class="function">eval</code> function to parse JSON objects in Javascript; even with the regular expression filter from RFC 4627, there are still information leaks remaining.
+		</div></div><div class="section" id="sect-Defensive_Coding-Tasks-Serialization-XML"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">9.4. XML serialization</h2></div></div></div><div class="para">
+
+		</div><div class="section" id="sect-Defensive_Coding-Tasks-Serialization-XML-External"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">9.4.1. External references</h3></div></div></div><div class="para">
+				XML documents can contain external references. They can occur in various places.
+			</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+						In the DTD declaration in the header of an XML document:
+					</div><div class="informalexample"><pre class="programlisting">
+<span class="perl_DataType">&lt;!DOCTYPE </span>html PUBLIC
+  "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"<span class="perl_DataType">&gt;</span>
+</pre></div></li><li class="listitem"><div class="para">
+						In a namespace declaration:
+					</div><div class="informalexample"><pre class="programlisting">
+<span class="perl_Keyword">&lt;xsd:schema</span><span class="perl_Others"> xmlns:xsd=</span><span class="perl_String">"http://www.w3.org/2001/XMLSchema"</span><span class="perl_Keyword">&gt;</span>
+</pre></div></li><li class="listitem"><div class="para">
+						In an entity defintion:
+					</div><div class="informalexample"><pre class="programlisting">
+<span class="perl_Error">&lt;</span>!ENTITY sys SYSTEM "http://www.example.com/ent.xml"&gt;
+<span class="perl_Error">&lt;</span>!ENTITY pub PUBLIC "-//Example//Public Entity//EN"
+  "http://www.example.com/pub-ent.xml"&gt;
+</pre></div></li><li class="listitem"><div class="para">
+						In a notation:
+					</div><div class="informalexample"><pre class="programlisting">
+<span class="perl_Error">&lt;</span>!NOTATION not SYSTEM "../not.xml"&gt;
+</pre></div></li></ul></div><div class="para">
+				Originally, these external references were intended as unique identifiers, but by many XML implementations, they are used for locating the data for the referenced element. This causes unwanted network traffic, and may disclose file system contents or otherwise unreachable network resources, so this functionality should be disabled.
+			</div><div class="para">
+				Depending on the XML library, external referenced might be processed not just when parsing XML, but also when generating it.
+			</div></div><div class="section" id="sect-Defensive_Coding-Tasks-Serialization-XML-Entities"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">9.4.2. Entity expansion</h3></div></div></div><div class="para">
+				When external DTD processing is disabled, an internal DTD subset can still contain entity definitions. Entity declarations can reference other entities. Some XML libraries expand entities automatically, and this processing cannot be switched off in some places (such as attribute values or content models). Without limits on the entity nesting level, this expansion results in data which can grow exponentially in length with size of the input. (If there is a limit on the nesting level, the growth is still polynomial, unless further limits are imposed.)
+			</div><div class="para">
+				Consequently, the processing internal DTD subsets should be disabled if possible, and only trusted DTDs should be processed. If a particular XML application does not permit such restrictions, then application-specific limits are called for.
+			</div></div><div class="section" id="sect-Defensive_Coding-Tasks-Serialization-XML-XInclude"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">9.4.3. XInclude processing</h3></div></div></div><div class="para">
+				XInclude processing can reference file and network resources and include them into the document, much like external entity references. When parsing untrusted XML documents, XInclude processing should be truned off.
+			</div><div class="para">
+				XInclude processing is also fairly complex and may pull in support for the XPointer and XPath specifications, considerably increasing the amount of code required for XML processing.
+			</div></div><div class="section" id="sect-Defensive_Coding-Tasks-Serialization-XML-Validation"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">9.4.4. Algorithmic complexity of XML validation</h3></div></div></div><div class="para">
+				DTD-based XML validation uses regular expressions for content models. The XML specification requires that content models are deterministic, which means that efficient validation is possible. However, some implementations do not enforce determinism, and require exponential (or just polynomial) amount of space or time for validating some DTD/document combinations.
+			</div><div class="para">
+				XML schemas and RELAX NG (via the <code class="literal">xsd:</code> prefix) directly support textual regular expressions which are not required to be deterministic.
+			</div></div><div class="section" id="sect-Defensive_Coding-Tasks-Serialization-XML-Expat"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">9.4.5. Using Expat for XML parsing</h3></div></div></div><div class="para">
+				By default, Expat does not try to resolve external IDs, so no steps are required to block them. However, internal entity declarations are processed. Installing a callback which stops parsing as soon as such entities are encountered disables them, see <a class="xref" href="#ex-Defensive_Coding-Tasks-Serialization-XML-Expat-EntityDeclHandler">Example 9.1, “Disabling XML entity processing with Expat”</a>. Expat does not perform any validation, so there are no problems related to that.
+			</div><div class="example" id="ex-Defensive_Coding-Tasks-Serialization-XML-Expat-EntityDeclHandler"><h6>Example 9.1. Disabling XML entity processing with Expat</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Comment">// Stop the parser when an entity declaration is encountered.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_DataType">static</span> <span class="perl_DataType">void</span>
+EntityDeclHandler(<span class="perl_DataType">void</span> *userData,
+		  <span class="perl_DataType">const</span> XML_Char *entityName, <span class="perl_DataType">int</span> is_parameter_entity,
+		  <span class="perl_DataType">const</span> XML_Char *value, <span class="perl_DataType">int</span> value_length,
+		  <span class="perl_DataType">const</span> XML_Char *base, <span class="perl_DataType">const</span> XML_Char *systemId,
+		  <span class="perl_DataType">const</span> XML_Char *publicId, <span class="perl_DataType">const</span> XML_Char *notationName)
+{
+  XML_StopParser((XML_Parser)userData, XML_FALSE);
+}
+</pre></div></div><br class="example-break" /><div class="para">
+				This handler must be installed when the <code class="literal">XML_Parser</code> object is created (<a class="xref" href="#ex-Defensive_Coding-Tasks-Serialization-XML-Expat-Create">Example 9.2, “Creating an Expat XML parser”</a>).
+			</div><div class="example" id="ex-Defensive_Coding-Tasks-Serialization-XML-Expat-Create"><h6>Example 9.2. Creating an Expat XML parser</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+XML_Parser parser = XML_ParserCreate(<span class="perl_String">"UTF-8"</span>);
+<span class="perl_Keyword">if</span> (parser == NULL) {
+  fprintf(stderr, <span class="perl_String">"XML_ParserCreate failed</span><span class="perl_Char">\n</span><span class="perl_String">"</span>);
+  close(fd);
+  exit(<span class="perl_Float">1</span>);
+}
+<span class="perl_Comment">// EntityDeclHandler needs a reference to the parser to stop</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// parsing.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>XML_SetUserData(parser, parser);
+<span class="perl_Comment">// Disable entity processing, to inhibit entity expansion.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>XML_SetEntityDeclHandler(parser, EntityDeclHandler);
+</pre></div></div><br class="example-break" /><div class="para">
+				It is also possible to reject internal DTD subsets altogeher, using a suitable <code class="literal">XML_StartDoctypeDeclHandler</code> handler installed with <code class="function">XML_SetDoctypeDeclHandler</code>.
+			</div></div><div class="section" id="sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">9.4.6. Using OpenJDK for XML parsing and validation</h3></div></div></div><div class="para">
+				OpenJDK contains facilities for DOM-based, SAX-based, and StAX-based document parsing. Documents can be validated against DTDs or XML schemas.
+			</div><div class="para">
+				The approach taken to deal with entity expansion differs from the general recommendation in <a class="xref" href="#sect-Defensive_Coding-Tasks-Serialization-XML-Entities">Section 9.4.2, “Entity expansion”</a>. We enable the the feature flag <code class="literal">javax.xml.XMLConstants.FEATURE_SECURE_PROCESSING</code>, which enforces heuristic restrictions on the number of entity expansions. Note that this flag alone does not prevent resolution of external references (system IDs or public IDs), so it is slightly misnamed.
+			</div><div class="para">
+				In the following sections, we use helper classes to prevent external ID resolution.
+			</div><div class="example" id="ex-Defensive_Coding-Tasks-Serialization-XML-OpenJDK-NoEntityResolver"><h6>Example 9.3. Helper class to prevent DTD external entity resolution in OpenJDK</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Keyword">class</span> NoEntityResolver <span class="perl_Keyword">implements</span> EntityResolver {
+    @Override
+    <span class="perl_Keyword">public</span> InputSource <span class="perl_Function">resolveEntity</span>(String publicId, String systemId)
+            <span class="perl_Keyword">throws</span> SAXException, IOException {
+        <span class="perl_Comment">// Throwing an exception stops validation.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>        <span class="perl_Keyword">throw</span> <span class="perl_Keyword">new</span> IOException(String<span class="perl_Function">.format(</span><span class="perl_Function"></span>
+<span class="perl_Function"></span>                <span class="perl_String">"attempt to resolve </span><span class="perl_Char">\"</span><span class="perl_String">%s</span><span class="perl_Char">\"</span><span class="perl_String"> </span><span class="perl_Char">\"</span><span class="perl_String">%s</span><span class="perl_Char">\"</span><span class="perl_String">"</span>, publicId, systemId));
+    }
+}
+</pre></div></div><br class="example-break" /><div class="example" id="ex-Defensive_Coding-Tasks-Serialization-XML-OpenJDK-NoResourceResolver"><h6>Example 9.4. Helper class to prevent schema resolution in OpenJDK</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Keyword">class</span> NoResourceResolver <span class="perl_Keyword">implements</span> LSResourceResolver {
+    @Override
+    <span class="perl_Keyword">public</span> LSInput <span class="perl_Function">resolveResource</span>(String type, String namespaceURI,
+            String publicId, String systemId, String baseURI) {
+        <span class="perl_Comment">// Throwing an exception stops validation.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>        <span class="perl_Keyword">throw</span> <span class="perl_Keyword">new</span> RuntimeException(String<span class="perl_Function">.format(</span><span class="perl_Function"></span>
+<span class="perl_Function"></span>                <span class="perl_String">"resolution attempt: type=%s namespace=%s "</span> +
+                <span class="perl_String">"publicId=%s systemId=%s baseURI=%s"</span>,
+                type, namespaceURI, publicId, systemId, baseURI));
+    }
+}
+</pre></div></div><br class="example-break" /><div class="para">
+				<a class="xref" href="#ex-Defensive_Coding-Tasks-Serialization-XML-OpenJDK-Imports">Example 9.5, “Java imports for OpenJDK XML parsing”</a> shows the imports used by the examples.
+			</div><div class="example" id="ex-Defensive_Coding-Tasks-Serialization-XML-OpenJDK-Imports"><h6>Example 9.5. Java imports for OpenJDK XML parsing</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Keyword">import</span> javax.xml.XMLConstants;
+<span class="perl_Keyword">import</span> javax.xml.parsers.DocumentBuilder;
+<span class="perl_Keyword">import</span> javax.xml.parsers.DocumentBuilderFactory;
+<span class="perl_Keyword">import</span> javax.xml.parsers.ParserConfigurationException;
+<span class="perl_Keyword">import</span> javax.xml.parsers.SAXParser;
+<span class="perl_Keyword">import</span> javax.xml.parsers.SAXParserFactory;
+<span class="perl_Keyword">import</span> javax.xml.transform.dom.DOMSource;
+<span class="perl_Keyword">import</span> javax.xml.transform.sax.SAXSource;
+<span class="perl_Keyword">import</span> javax.xml.validation.Schema;
+<span class="perl_Keyword">import</span> javax.xml.validation.SchemaFactory;
+<span class="perl_Keyword">import</span> javax.xml.validation.Validator;
+
+<span class="perl_Keyword">import</span> org.w3c.dom.Document;
+<span class="perl_Keyword">import</span> org.w3c.dom.ls.LSInput;
+<span class="perl_Keyword">import</span> org.w3c.dom.ls.LSResourceResolver;
+<span class="perl_Keyword">import</span> org.xml.sax.EntityResolver;
+<span class="perl_Keyword">import</span> org.xml.sax.ErrorHandler;
+<span class="perl_Keyword">import</span> org.xml.sax.InputSource;
+<span class="perl_Keyword">import</span> org.xml.sax.SAXException;
+<span class="perl_Keyword">import</span> org.xml.sax.SAXParseException;
+<span class="perl_Keyword">import org.xml.sax.XMLReader;</span>
+</pre></div></div><br class="example-break" /><div class="section" id="sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse-DOM"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title">9.4.6.1. DOM-based XML parsing and DTD validation in OpenJDK</h4></div></div></div><div class="para">
+					This approach produces a <code class="literal">org.w3c.dom.Document</code> object from an input stream. <a class="xref" href="#ex-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse-DOM">Example 9.6, “DOM-based XML parsing in OpenJDK”</a> use the data from the <code class="literal">java.io.InputStream</code> instance in the <code class="literal">inputStream</code> variable.
+				</div><div class="example" id="ex-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse-DOM"><h6>Example 9.6. DOM-based XML parsing in OpenJDK</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+DocumentBuilderFactory factory = DocumentBuilderFactory.<span class="perl_Function">newInstance</span>();
+<span class="perl_Comment">// Impose restrictions on the complexity of the DTD.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>factory.<span class="perl_Function">setFeature</span>(XMLConstants.<span class="perl_Function">FEATURE_SECURE_PROCESSING</span>, <span class="perl_Keyword">true</span>);
+
+<span class="perl_Comment">// Turn on validation.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// This step can be omitted if validation is not desired.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>factory.<span class="perl_Function">setValidating</span>(<span class="perl_Keyword">true</span>);
+
+<span class="perl_Comment">// Parse the document.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>DocumentBuilder builder = factory.<span class="perl_Function">newDocumentBuilder</span>();
+builder.<span class="perl_Function">setEntityResolver</span>(<span class="perl_Keyword">new</span> <span class="perl_Function">NoEntityResolver</span>());
+builder.<span class="perl_Function">setErrorHandler</span>(<span class="perl_Keyword">new</span> <span class="perl_Function">Errors</span>());
+Document document = builder.<span class="perl_Function">parse</span>(inputStream);
+</pre></div></div><br class="example-break" /><div class="para">
+					External entity references are prohibited using the <code class="literal">NoEntityResolver</code> class in <a class="xref" href="#ex-Defensive_Coding-Tasks-Serialization-XML-OpenJDK-NoEntityResolver">Example 9.3, “Helper class to prevent DTD external entity resolution in OpenJDK”</a>. Because external DTD references are prohibited, DTD validation (if enabled) will only happen against the internal DTD subset embedded in the XML document.
+				</div><div class="para">
+					To validate the document against an external DTD, use a <code class="literal">javax.xml.transform.Transformer</code> class to add the DTD reference to the document, and an entity resolver which whitelists this external reference.
+				</div></div><div class="section" id="sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse-SAX"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title">9.4.6.2. XML Schema validation in OpenJDK</h4></div></div></div><div class="para">
+					<a class="xref" href="#ex-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse-XMLSchema_SAX">Example 9.7, “SAX-based validation against an XML schema in OpenJDK”</a> shows how to validate a document against an XML Schema, using a SAX-based approach. The XML data is read from an <code class="literal">java.io.InputStream</code> in the <code class="literal">inputStream</code> variable.
+				</div><div class="example" id="ex-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse-XMLSchema_SAX"><h6>Example 9.7. SAX-based validation against an XML schema in OpenJDK</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+SchemaFactory factory = SchemaFactory.<span class="perl_Function">newInstance</span>(
+        XMLConstants.<span class="perl_Function">W3C_XML_SCHEMA_NS_URI</span>);
+
+<span class="perl_Comment">// This enables restrictions on the schema and document</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// complexity.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>factory.<span class="perl_Function">setFeature</span>(XMLConstants.<span class="perl_Function">FEATURE_SECURE_PROCESSING</span>, <span class="perl_Keyword">true</span>);
+
+<span class="perl_Comment">// This prevents resource resolution by the schema itself.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// If the schema is trusted and references additional files,</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// this line must be omitted, otherwise loading these files</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// will fail.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>factory.<span class="perl_Function">setResourceResolver</span>(<span class="perl_Keyword">new</span> <span class="perl_Function">NoResourceResolver</span>());
+
+Schema schema = factory.<span class="perl_Function">newSchema</span>(schemaFile);
+Validator validator = schema.<span class="perl_Function">newValidator</span>();
+
+<span class="perl_Comment">// This prevents external resource resolution.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>validator.<span class="perl_Function">setResourceResolver</span>(<span class="perl_Keyword">new</span> <span class="perl_Function">NoResourceResolver</span>());
+
+validator.<span class="perl_Function">validate</span>(<span class="perl_Keyword">new</span> SAXSource(<span class="perl_Keyword">new</span> InputSource(inputStream)));
+</pre></div></div><br class="example-break" /><div class="para">
+					The <code class="literal">NoResourceResolver</code> class is defined in <a class="xref" href="#ex-Defensive_Coding-Tasks-Serialization-XML-OpenJDK-NoResourceResolver">Example 9.4, “Helper class to prevent schema resolution in OpenJDK”</a>.
+				</div><div class="para">
+					If you need to validate a document against an XML schema, use the code in <a class="xref" href="#ex-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse-DOM">Example 9.6, “DOM-based XML parsing in OpenJDK”</a> to create the document, but do not enable validation at this point. Then use <a class="xref" href="#ex-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse-XMLSchema_DOM">Example 9.8, “Validation of a DOM document against an XML schema in OpenJDK”</a> to perform the schema-based validation on the <code class="literal">org.w3c.dom.Document</code> instance <code class="literal">document</code>.
+				</div><div class="example" id="ex-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse-XMLSchema_DOM"><h6>Example 9.8. Validation of a DOM document against an XML schema in OpenJDK</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+SchemaFactory factory = SchemaFactory.<span class="perl_Function">newInstance</span>(
+        XMLConstants.<span class="perl_Function">W3C_XML_SCHEMA_NS_URI</span>);
+
+<span class="perl_Comment">// This enables restrictions on schema complexity.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>factory.<span class="perl_Function">setFeature</span>(XMLConstants.<span class="perl_Function">FEATURE_SECURE_PROCESSING</span>, <span class="perl_Keyword">true</span>);
+
+<span class="perl_Comment">// The following line prevents resource resolution</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// by the schema itself.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>factory.<span class="perl_Function">setResourceResolver</span>(<span class="perl_Keyword">new</span> <span class="perl_Function">NoResourceResolver</span>());
+
+Schema schema = factory.<span class="perl_Function">newSchema</span>(schemaFile);
+
+Validator validator = schema.<span class="perl_Function">newValidator</span>();
+
+<span class="perl_Comment">// This prevents external resource resolution.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>validator.<span class="perl_Function">setResourceResolver</span>(<span class="perl_Keyword">new</span> <span class="perl_Function">NoResourceResolver</span>());
+validator.<span class="perl_Function">validate</span>(<span class="perl_Keyword">new</span> DOMSource(document));
+</pre></div></div><br class="example-break" /></div></div></div><div class="section" id="idm69258384"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idm69258384">9.5. Protocol Encoders</h2></div></div></div><div class="para">
+			For protocol encoders, you should write bytes to a buffer which grows as needed, using an exponential sizing policy. Explicit lengths can be patched in later, once they are known. Allocating the required number of bytes upfront typically requires separate code to compute the final size, which must be kept in sync with the actual encoding step, or vulnerabilities may result. In multi-threaded code, parts of the object being deserialized might change, so that the computed size is out of date.
+		</div><div class="para">
+			You should avoid copying data directly from a received packet during encoding, disregarding the format. Propagating malformed data could enable attacks on other recipients of that data.
+		</div><div class="para">
+			When using C or C++ and copying whole data structures directly into the output, make sure that you do not leak information in padding bytes between fields or at the end of the <code class="literal">struct</code>.
+		</div></div></div><div xml:lang="en-US" class="chapter" id="chap-Defensive_Coding-Tasks-Cryptography" lang="en-US"><div class="titlepage"><div><div><h2 class="title">Chapter 10. Cryptography</h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="#idm67720016">10.1. Primitives</a></span></dt><dt><span class="section"><a href="#idm71876736">10.2. Randomness</a></span></dt></dl></div><div class="section" id="idm67720016"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idm67720016">10.1. Primitives</h2></div></div></div><div class="para">
+			Chosing from the following cryptographic primitives is recommended:
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					RSA with 2048 bit keys and OAEP
+				</div></li><li class="listitem"><div class="para">
+					AES-128 in CBC mode
+				</div></li><li class="listitem"><div class="para">
+					SHA-256
+				</div></li><li class="listitem"><div class="para">
+					HMAC-SHA-256
+				</div></li><li class="listitem"><div class="para">
+					HMAC-SHA-1
+				</div></li></ul></div><div class="para">
+			Other cryptographic algorithms can be used if they are required for interoperability with existing software:
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					RSA with key sizes larger than 1024 and legacy padding
+				</div></li><li class="listitem"><div class="para">
+					AES-192
+				</div></li><li class="listitem"><div class="para">
+					AES-256
+				</div></li><li class="listitem"><div class="para">
+					3DES (triple DES, with two or three 56 bit keys)
+				</div></li><li class="listitem"><div class="para">
+					RC4 (but very, very strongly discouraged)
+				</div></li><li class="listitem"><div class="para">
+					SHA-1
+				</div></li><li class="listitem"><div class="para">
+					HMAC-MD5
+				</div></li></ul></div><div class="important"><div class="admonition_header"><h2>Important</h2></div><div class="admonition"><div class="para">
+				These primitives are difficult to use in a secure way. Custom implementation of security protocols should be avoided. For protecting confidentiality and integrity of network transmissions, TLS should be used (<a class="xref" href="#chap-Defensive_Coding-TLS">Chapter 12, <em>Transport Layer Security</em></a>).
+			</div></div></div></div><div class="section" id="idm71876736"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idm71876736">10.2. Randomness</h2></div></div></div><div class="para">
+			The following facilities can be used to generate unpredictable and non-repeating values. When these functions are used without special safeguards, each individual rnadom value should be at least 12 bytes long.
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					<code class="function">PK11_GenerateRandom</code> in the NSS library (usable for high data rates)
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">RAND_bytes</code> in the OpenSSL library (usable for high data rates)
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">gnutls_rnd</code> in GNUTLS, with <code class="literal">GNUTLS_RND_RANDOM</code> as the first argument (usable for high data rates)
+				</div></li><li class="listitem"><div class="para">
+					<span class="type">java.security.SecureRandom</span> in Java (usable for high data rates)
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">os.urandom</code> in Python
+				</div></li><li class="listitem"><div class="para">
+					Reading from the <code class="filename">/dev/urandom</code> character device
+				</div></li></ul></div><div class="para">
+			All these functions should be non-blocking, and they should not wait until physical randomness becomes available. (Some cryptography providers for Java can cause <span class="type">java.security.SecureRandom</span> to block, however.) Those functions which do not obtain all bits directly from <code class="filename">/dev/urandom</code> are suitable for high data rates because they do not deplete the system-wide entropy pool.
+		</div><div class="important"><div class="admonition_header"><h2>Difficult to use API</h2></div><div class="admonition"><div class="para">
+				Both <code class="function">RAND_bytes</code> and <code class="function">PK11_GenerateRandom</code> have three-state return values (with conflicting meanings). Careful error checking is required. Please review the documentation when using these functions.
+			</div></div></div><div class="para">
+			Other sources of randomness should be considered predictable.
+		</div><div class="para">
+			Generating randomness for cryptographic keys in long-term use may need different steps and is best left to cryptographic libraries.
+		</div></div></div></div><div class="part" id="idm70793376"><div class="titlepage"><div><div text-align="center"><h1 class="title">Part III. Implementing Security Features</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="chapter"><a href="#chap-Defensive_Coding-Authentication">11. Authentication and Authorization</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Defensive_Coding-Authentication-Server">11.1. Authenticating servers</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Authentication-Host_based">11.2. Host-based authentication</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Authentication-UNIX_Domain">11.3. UNIX domain socket authentication</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Authentication-Netlink">11.4. <code class="literal">AF_NETLINK</code> authentication of origin</a></span></dt></dl></dd><dt><span class="cha
 pter"><a href="#chap-Defensive_Coding-TLS">12. Transport Layer Security</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Defensive_Coding-TLS-Pitfalls">12.1. Common Pitfalls</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Defensive_Coding-TLS-OpenSSL">12.1.1. OpenSSL Pitfalls</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-TLS-Pitfalls-GNUTLS">12.1.2. GNUTLS Pitfalls</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-TLS-Pitfalls-OpenJDK">12.1.3. OpenJDK Pitfalls</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-TLS-Pitfalls-NSS">12.1.4. NSS Pitfalls</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Defensive_Coding-TLS-Client">12.2. TLS Clients</a></span></dt><dd><dl><dt><span class="section"><a href="#idm45877184">12.2.1. Implementation TLS Clients With OpenSSL</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-TLS-Client-GNUTLS">12.2.2
 . Implementation TLS Clients With GNUTLS</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-TLS-Client-OpenJDK">12.2.3. Implementing TLS Clients With OpenJDK</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-TLS-Client-NSS">12.2.4. Implementing TLS Clients With NSS</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-TLS-Client-Python">12.2.5. Implementing TLS Clients With Python</a></span></dt></dl></dd></dl></dd></dl></div><div xml:lang="en-US" class="chapter" id="chap-Defensive_Coding-Authentication" lang="en-US"><div class="titlepage"><div><div><h2 class="title">Chapter 11. Authentication and Authorization</h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="#sect-Defensive_Coding-Authentication-Server">11.1. Authenticating servers</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Authentication-Host_based">11.2. Host-based authentication</a></span></dt><dt>
 <span class="section"><a href="#sect-Defensive_Coding-Authentication-UNIX_Domain">11.3. UNIX domain socket authentication</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-Authentication-Netlink">11.4. <code class="literal">AF_NETLINK</code> authentication of origin</a></span></dt></dl></div><div class="section" id="sect-Defensive_Coding-Authentication-Server"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">11.1. Authenticating servers</h2></div></div></div><div class="para">
+			When connecting to a server, a client has to make sure that it is actually talking to the server it expects. There are two different aspects, securing the network path, and making sure that the expected user runs the process on the target host. There are several ways to ensure that:
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					The server uses a TLS certificate which is valid according to the web browser public key infrastructure, and the client verifies the certificate and the host name.
+				</div></li><li class="listitem"><div class="para">
+					The server uses a TLS certificate which is expectedby the client (perhaps it is stored in a configuration file read by the client). In this case, no host name checking is required.
+				</div></li><li class="listitem"><div class="para">
+					On Linux, UNIX domain sockets (of the <code class="literal">PF_UNIX</code> protocol family, sometimes called <code class="literal">PF_LOCAL</code>) are restricted by file system permissions. If the server socket path is not world-writable, the server identity cannot be spoofed by local users.
+				</div></li><li class="listitem"><div class="para">
+					Port numbers less than 1024 (<span class="emphasis"><em>trusted ports</em></span>) can only be used by <code class="literal">root</code>, so if a UDP or TCP server is running on the local host and it uses a trusted port, its identity is assured. (Not all operating systems enforce the trusted ports concept, and the network might not be trusted, so it is only useful on the local system.)
+				</div></li></ul></div><div class="para">
+			TLS (<a class="xref" href="#chap-Defensive_Coding-TLS">Chapter 12, <em>Transport Layer Security</em></a>) is the recommended way for securing connections over untrusted networks.
+		</div><div class="para">
+			If the server port number is 1024 is higher, a local user can impersonate the process by binding to this socket, perhaps after crashing the real server by exploiting a denial-of-service vulnerability.
+		</div></div><div class="section" id="sect-Defensive_Coding-Authentication-Host_based"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">11.2. Host-based authentication</h2></div></div></div><div class="para">
+			Host-based authentication uses access control lists (ACLs) to accept or deny requests from clients. Thsis authentication method comes in two flavors: IP-based (or, more generally, address-based) and name-based (with the name coming from DNS or <code class="filename">/etc/hosts</code>). IP-based ACLs often use prefix notation to extend access to entire subnets. Name-based ACLs sometimes use wildcards for adding groups of hosts (from entire DNS subtrees). (In the SSH context, host-based authentication means something completely different and is not covered in this section.)
+		</div><div class="para">
+			Host-based authentication trust the network and may not offer sufficient granularity, so it has to be considered a weak form of authentication. On the other hand, IP-based authentication can be made extremely robust and can be applied very early in input processing, so it offers an opportunity for significantly reducing the number of potential attackers for many services.
+		</div><div class="para">
+			The names returned by <code class="function">gethostbyaddr</code> and <code class="function">getnameinfo</code> functions cannot be trusted. (DNS PTR records can be set to arbitrary values, not just names belong to the address owner.) If these names are used for ACL matching, a forward lookup using <code class="function">gethostbyaddr</code> or <code class="function">getaddrinfo</code> has to be performed. The name is only valid if the original address is found among the results of the forward lookup (<span class="emphasis"><em>double-reverse lookup</em></span>).
+		</div><div class="para">
+			An empty ACL should deny all access (deny-by-default). If empty ACLs permits all access, configuring any access list must switch to deny-by-default for all unconfigured protocols, in both name-based and address-based variants.
+		</div><div class="para">
+			Similarly, if an address or name is not matched by the list, it should be denied. However, many implementations behave differently, so the actual behavior must be documented properly.
+		</div><div class="para">
+			IPv6 addresses can embed IPv4 addresses. There is no universally correct way to deal with this ambiguity. The behavior of the ACL implementation should be documented.
+		</div></div><div class="section" id="sect-Defensive_Coding-Authentication-UNIX_Domain"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">11.3. UNIX domain socket authentication</h2></div></div></div><div class="para">
+			UNIX domain sockets (with address family <code class="literal">AF_UNIX</code> or <code class="literal">AF_LOCAL</code>) are restricted to the local host and offer a special authentication mechanism: credentials passing.
+		</div><div class="para">
+			Nowadays, most systems support the <code class="literal">SO_PEERCRED</code> (Linux) or <code class="literal">LOCAL_PEERCRED</code> (FreeBSD) socket options, or the <code class="function">getpeereid</code> (other BSDs, MacOS X). These interfaces provide direct access to the (effective) user ID on the other end of a domain socket connect, without cooperation from the other end.
+		</div><div class="para">
+			Historically, credentials passing was implemented using ancillary data in the <code class="function">sendmsg</code> and <code class="function">recvmsg</code> functions. On some systems, only credentials data that the peer has explicitly sent can be received, and the kernel checks the data for correctness on the sending side. This means that both peers need to deal with ancillary data. Compared to that, the modern interfaces are easier to use. Both sets of interfaces vary considerably among UNIX-like systems, unfortunately.
+		</div><div class="para">
+			If you want to authenticate based on supplementary groups, you should obtain the user ID using one of these methods, and look up the list of supplementary groups using <code class="function">getpwuid</code> (or <code class="function">getpwuid_r</code>) and <code class="function">getgrouplist</code>. Using the PID and information from <code class="filename">/proc/PID/status</code> is prone to race conditions and insecure.
+		</div></div><div class="section" id="sect-Defensive_Coding-Authentication-Netlink"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">11.4. <code class="literal">AF_NETLINK</code> authentication of origin</h2></div></div></div><div class="para">
+			Netlink messages are used as a high-performance data transfer mechanism between the kernel and the userspace. Traditionally, they are used to exchange information related to the network statck, such as routing table entries.
+		</div><div class="para">
+			When processing Netlink messages from the kernel, it is important to check that these messages actually originate from the kernel, by checking that the port ID (or PID) field <code class="literal">nl_pid</code> in the <code class="literal">sockaddr_nl</code> structure is <code class="literal">0</code>. (This structure can be obtained using <code class="function">recvfrom</code> or <code class="function">recvmsg</code>, it is different from the <code class="literal">nlmsghdr</code> structure.) The kernel does not prevent other processes from sending unicast Netlink messages, but the <code class="literal">nl_pid</code> field in the sender's socket address will be non-zero in such cases.
+		</div><div class="para">
+			Applications should not use <code class="literal">AF_NETLINK</code> sockets as an IPC mechanism among processes, but prefer UNIX domain sockets for this tasks.
+		</div></div></div><div xml:lang="en-US" class="chapter" id="chap-Defensive_Coding-TLS" lang="en-US"><div class="titlepage"><div><div><h2 class="title">Chapter 12. Transport Layer Security</h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="#sect-Defensive_Coding-TLS-Pitfalls">12.1. Common Pitfalls</a></span></dt><dd><dl><dt><span class="section"><a href="#sect-Defensive_Coding-TLS-OpenSSL">12.1.1. OpenSSL Pitfalls</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-TLS-Pitfalls-GNUTLS">12.1.2. GNUTLS Pitfalls</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-TLS-Pitfalls-OpenJDK">12.1.3. OpenJDK Pitfalls</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-TLS-Pitfalls-NSS">12.1.4. NSS Pitfalls</a></span></dt></dl></dd><dt><span class="section"><a href="#sect-Defensive_Coding-TLS-Client">12.2. TLS Clients</a></span></dt><dd><dl><dt><span class="section"><a href="#idm45877184">12.2.1
 . Implementation TLS Clients With OpenSSL</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-TLS-Client-GNUTLS">12.2.2. Implementation TLS Clients With GNUTLS</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-TLS-Client-OpenJDK">12.2.3. Implementing TLS Clients With OpenJDK</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-TLS-Client-NSS">12.2.4. Implementing TLS Clients With NSS</a></span></dt><dt><span class="section"><a href="#sect-Defensive_Coding-TLS-Client-Python">12.2.5. Implementing TLS Clients With Python</a></span></dt></dl></dd></dl></div><div class="para">
+		Transport Layer Security (TLS, formerly Secure Sockets Layer/SSL) is the recommended way to to protect integrity and confidentiality while data is transferred over an untrusted network connection, and to identify the endpoint.
+	</div><div class="section" id="sect-Defensive_Coding-TLS-Pitfalls"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">12.1. Common Pitfalls</h2></div></div></div><div class="para">
+			TLS implementations are difficult to use, and most of them lack a clean API design. The following sections contain implementation-specific advice, and some generic pitfalls are mentioned below.
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					Most TLS implementations have questionable default TLS cipher suites. Most of them enable anonymous Diffie-Hellman key exchange (but we generally want servers to authenticate themselves). Many do not disable ciphers which are subject to brute-force attacks because of restricted key lengths. Some even disable all variants of AES in the default configuration.
+				</div><div class="para">
+					When overriding the cipher suite defaults, it is recommended to disable all cipher suites which are not present on a whitelist, instead of simply enabling a list of cipher suites. This way, if an algorithm is disabled by default in the TLS implementation in a future security update, the application will not re-enable it.
+				</div></li><li class="listitem"><div class="para">
+					The name which is used in certificate validation must match the name provided by the user or configuration file. No host name canonicalization or IP address lookup must be performed.
+				</div></li><li class="listitem"><div class="para">
+					The TLS handshake has very poor performance if the TCP Nagle algorithm is active. You should switch on the <code class="literal">TCP_NODELAY</code> socket option (at least for the duration of the handshake), or use the Linux-specific <code class="literal">TCP_CORK</code> option.
+				</div><div class="example" id="ex-Defensive_Coding-TLS-Nagle"><h6>Example 12.1. Deactivating the TCP Nagle algorithm</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_DataType">const</span> <span class="perl_DataType">int</span> val = <span class="perl_Float">1</span>;
+<span class="perl_DataType">int</span> ret = setsockopt(sockfd, IPPROTO_TCP, TCP_NODELAY, &amp;val, <span class="perl_Keyword">sizeof</span>(val));
+<span class="perl_Keyword">if</span> (ret &lt; 0) {
+  perror(<span class="perl_String">"setsockopt(TCP_NODELAY)"</span>);
+  exit(<span class="perl_Float">1</span>);
+}
+</pre></div></div><br class="example-break" /></li><li class="listitem"><div class="para">
+					Implementing proper session resumption decreases handshake overhead considerably. This is important if the upper-layer protocol uses short-lived connections (like most application of HTTPS).
+				</div></li><li class="listitem"><div class="para">
+					Both client and server should work towards an orderly connection shutdown, that is send <code class="literal">close_notify</code> alerts and respond to them. This is especially important if the upper-layer protocol does not provide means to detect connection truncation (like some uses of HTTP).
+				</div></li><li class="listitem"><div class="para">
+					When implementing a server using event-driven programming, it is important to handle the TLS handshake properly because it includes multiple network round-trips which can block when an ordinary TCP <code class="function">accept</code> would not. Otherwise, a client which fails to complete the TLS handshake for some reason will prevent the server from handling input from other clients.
+				</div></li><li class="listitem"><div class="para">
+					Unlike regular file descriptors, TLS connections cannot be passed between processes. Some TLS implementations add additional restrictions, and TLS connections generally cannot be used across <code class="function">fork</code> function calls (see <a class="xref" href="#sect-Defensive_Coding-Tasks-Processes-Fork-Parallel">Section 8.6, “<code class="function">fork</code> as a primitive for parallelism”</a>).
+				</div></li></ul></div><div class="section" id="sect-Defensive_Coding-TLS-OpenSSL"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">12.1.1. OpenSSL Pitfalls</h3></div></div></div><div class="para">
+				Some OpenSSL function use <span class="emphasis"><em>tri-state return values</em></span>. Correct error checking is extremely important. Several functions return <code class="literal">int</code> values with the following meaning:
+			</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+						The value <code class="literal">1</code> indicates success (for example, a successful signature verification).
+					</div></li><li class="listitem"><div class="para">
+						The value <code class="literal">0</code> indicates semantic failure (for example, a signature verification which was unsuccessful because the signing certificate was self-signed).
+					</div></li><li class="listitem"><div class="para">
+						The value <code class="literal">-1</code> indicates a low-level error in the system, such as failure to allocate memory using <code class="function">malloc</code>.
+					</div></li></ul></div><div class="para">
+				Treating such tri-state return values as booleans can lead to security vulnerabilities. Note that some OpenSSL functions return boolean results or yet another set of status indicators. Each function needs to be checked individually.
+			</div><div class="para">
+				Recovering precise error information is difficult. <a class="xref" href="#ex-Defensive_Coding-TLS-OpenSSL-Errors">Example 12.2, “Obtaining OpenSSL error codes”</a> shows how to obtain a more precise error code after a function call on an <code class="literal">SSL</code> object has failed. However, there are still cases where no detailed error information is available (e.g., if <code class="function">SSL_shutdown</code> fails due to a connection teardown by the other end).
+			</div><div class="example" id="ex-Defensive_Coding-TLS-OpenSSL-Errors"><h6>Example 12.2. Obtaining OpenSSL error codes</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_DataType">static</span> <span class="perl_DataType">void</span> __attribute__((noreturn))
+ssl_print_error_and_exit(SSL *ssl, <span class="perl_DataType">const</span> <span class="perl_DataType">char</span> *op, <span class="perl_DataType">int</span> ret)
+{
+  <span class="perl_DataType">int</span> subcode = SSL_get_error(ssl, ret);
+  <span class="perl_Keyword">switch</span> (subcode) {
+  <span class="perl_Keyword">case</span> SSL_ERROR_NONE:
+    fprintf(stderr, <span class="perl_String">"error: %s: no error to report</span><span class="perl_Char">\n</span><span class="perl_String">"</span>, op);
+    <span class="perl_Keyword">break</span>;
+  <span class="perl_Keyword">case</span> SSL_ERROR_WANT_READ:
+  <span class="perl_Keyword">case</span> SSL_ERROR_WANT_WRITE:
+  <span class="perl_Keyword">case</span> SSL_ERROR_WANT_X509_LOOKUP:
+  <span class="perl_Keyword">case</span> SSL_ERROR_WANT_CONNECT:
+  <span class="perl_Keyword">case</span> SSL_ERROR_WANT_ACCEPT:
+    fprintf(stderr, <span class="perl_String">"error: %s: invalid blocking state %d</span><span class="perl_Char">\n</span><span class="perl_String">"</span>, op, subcode);
+    <span class="perl_Keyword">break</span>;
+  <span class="perl_Keyword">case</span> SSL_ERROR_SSL:
+    fprintf(stderr, <span class="perl_String">"error: %s: TLS layer problem</span><span class="perl_Char">\n</span><span class="perl_String">"</span>, op);
+  <span class="perl_Keyword">case</span> SSL_ERROR_SYSCALL:
+    fprintf(stderr, <span class="perl_String">"error: %s: system call failed: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>, op, strerror(errno));
+    <span class="perl_Keyword">break</span>;
+  <span class="perl_Keyword">case</span> SSL_ERROR_ZERO_RETURN:
+    fprintf(stderr, <span class="perl_String">"error: %s: zero return</span><span class="perl_Char">\n</span><span class="perl_String">"</span>, op);
+  }
+  exit(<span class="perl_Float">1</span>);
+}
+</pre></div></div><br class="example-break" /><div class="para">
+				The <code class="function">OPENSSL_config</code> function is documented to never fail. In reality, it can terminate the entire process if there is a failure accessing the configuration file. An error message is written to standard error, but which might not be visible if the function is called from a daemon process.
+			</div><div class="para">
+				OpenSSL contains two separate ASN.1 DER decoders. One set of decoders operate on BIO handles (the input/output stream abstraction provided by OpenSSL); their decoder function names start with <code class="literal">d2i_</code> and end in <code class="literal">_fp</code> or <code class="literal">_bio</code> (e.g., <code class="function">d2i_X509_fp</code> or <code class="function">d2i_X509_bio</code>). These decoders must not be used for parsing data from untrusted sources; instead, the variants without the <code class="literal">_fp</code> and <code class="literal">_bio</code> (e.g., <code class="function">d2i_X509</code>) shall be used. The BIO variants have received considerably less testing and are not very robust.
+			</div><div class="para">
+				For the same reason, the OpenSSL command line tools (such as <code class="command">openssl x509</code>) are generally generally less robust than the actual library code. They use the BIO functions internally, and not the more robust variants.
+			</div><div class="para">
+				The command line tools do not always indicate failure in the exit status of the <span class="application"><strong>openssl</strong></span> process. For instance, a verification failure in <code class="command">openssl verify</code> result in an exit status of zero.
+			</div><div class="para">
+				The OpenSSL server and client applications (<code class="command">openssl s_client</code> and <code class="command">openssl s_server</code>) are debugging tools and should <span class="emphasis"><em>never</em></span> be used as generic clients. For instance, the <span class="application"><strong>s_client</strong></span> tool reacts in a surprisign way to lines starting with <code class="literal">R</code> and <code class="literal">Q</code>.
+			</div><div class="para">
+				OpenSSL allows application code to access private key material over documented interfaces. This can significantly increase the part of the code base which has to undergo security certification.
+			</div></div><div class="section" id="sect-Defensive_Coding-TLS-Pitfalls-GNUTLS"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">12.1.2. GNUTLS Pitfalls</h3></div></div></div><div class="para">
+				<code class="filename">libgnutls.so.26</code> links to <code class="filename">libpthread.so.0</code>. Loading the threading library too late causes problems, so the main program should be linked with <code class="literal">-lpthread</code> as well. As a result, it can be difficult to use GNUTLS in a plugin which is loaded with the <code class="function">dlopen</code> function. Another side effect is that applications which merely link against GNUTLS (even without actually using it) may incur a substantial overhead because other libraries automatically switch to thread-safe algorithms.
+			</div><div class="para">
+				The <code class="function">gnutls_global_init</code> function must be called before using any functionality provided by the library. This function is not thread-safe, so external locking is required, but it is not clear which lock should be used. Omitting the synchronization does not just lead to a memory leak, as it is suggested in the GNUTLS documentation, but to undefined behavior because there is no barrier that would enforce memory ordering.
+			</div><div class="para">
+				The <code class="function">gnutls_global_deinit</code> function does not actually deallocate all resources allocated by <code class="function">gnutls_global_init</code>. It is currently not thread-safe. Therefore, it is best to avoid calling it altogether.
+			</div><div class="para">
+				The X.509 implementation in GNUTLS is rather lenient. For example, it is possible to create and process X.509 version 1 certificates which carry extensions. These certificates are (correctly) rejected by other implementations.
+			</div></div><div class="section" id="sect-Defensive_Coding-TLS-Pitfalls-OpenJDK"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">12.1.3. OpenJDK Pitfalls</h3></div></div></div><div class="para">
+				The Java cryptographic framework is highly modular. As a result, when you request an object implementing some cryptographic functionality, you cannot be completely sure that you end up with the well-tested, reviewed implementation in OpenJDK.
+			</div><div class="para">
+				OpenJDK (in the source code as published by Oracle) and other implementations of the Java platform require that the system administrator has installed so-called <span class="emphasis"><em>unlimited strength jurisdiction policy files</em></span>. Without this step, it is not possible to use the secure algorithms which offer sufficient cryptographic strength. Most downstream redistributors of OpenJDK remove this requirement.
+			</div><div class="para">
+				Some versions of OpenJDK use <code class="filename">/dev/random</code> as the randomness source for nonces and other random data which is needed for TLS operation, but does not actually require physical randomness. As a result, TLS applications can block, waiting for more bits to become available in <code class="filename">/dev/random</code>.
+			</div></div><div class="section" id="sect-Defensive_Coding-TLS-Pitfalls-NSS"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">12.1.4. NSS Pitfalls</h3></div></div></div><div class="para">
+				NSS was not designed to be used by other libraries which can be linked into applications without modifying them. There is a lot of global state. There does not seem to be a way to perform required NSS initialization without race conditions.
+			</div><div class="para">
+				If the NSPR descriptor is in an unexpected state, the <code class="function">SSL_ForceHandshake</code> function can succeed, but no TLS handshake takes place, the peer is not authenticated, and subsequent data is exchanged in the clear.
+			</div><div class="para">
+				NSS disables itself if it detects that the process underwent a <code class="function">fork</code> after the library has been initialized. This behavior is required by the PKCS#11 API specification.
+			</div></div></div><div class="section" id="sect-Defensive_Coding-TLS-Client"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">12.2. TLS Clients</h2></div></div></div><div class="para">
+			Secure use of TLS in a client generally involves all of the following steps. (Individual instructions for specific TLS implementations follow in the next sections.)
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					The client must configure the TLS library to use a set of trusted root certificates. These certificates are provided by the system in <code class="filename">/etc/ssl/certs</code> or files derived from it.
+				</div></li><li class="listitem"><div class="para">
+					The client selects sufficiently strong cryptographic primitives and disables insecure ones (such as no-op encryption). Compression and SSL version 2 support must be disabled (including the SSLv2-compatible handshake).
+				</div></li><li class="listitem"><div class="para">
+					The client initiates the TLS connection. The Server Name Indication extension should be used if supported by the TLS implementation. Before switching to the encrypted connection state, the contents of all input and output buffers must be discarded.
+				</div></li><li class="listitem"><div class="para">
+					The client needs to validate the peer certificate provided by the server, that is, the client must check that there is a cryptographically protected chain from a trusted root certificate to the peer certificate. (Depending on the TLS implementation, a TLS handshake can succeed even if the certificate cannot be validated.)
+				</div></li><li class="listitem"><div class="para">
+					The client must check that the configured or user-provided server name matches the peer certificate provided by the server.
+				</div></li></ul></div><div class="para">
+			It is safe to provide users detailed diagnostics on certificate validation failures. Other causes of handshake failures and, generally speaking, any details on other errors reported by the TLS implementation (particularly exception tracebacks), must not be divulged in ways that make them accessible to potential attackers. Otherwise, it is possible to create decryption oracles.
+		</div><div class="important"><div class="admonition_header"><h2>Important</h2></div><div class="admonition"><div class="para">
+				Depending on the application, revocation checking (against certificate revocations lists or via OCSP) and session resumption are important aspects of production-quality client. These aspects are not yet covered.
+			</div></div></div><div class="section" id="idm45877184"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idm45877184">12.2.1. Implementation TLS Clients With OpenSSL</h3></div></div></div><div class="para">
+				In the following code, the error handling is only exploratory. Proper error handling is required for production use, especially in libraries. 
+			</div><div class="para">
+				The OpenSSL library needs explicit initialization (see <a class="xref" href="#ex-Defensive_Coding-TLS-OpenSSL-Init">Example 12.3, “OpenSSL library initialization”</a>).
+			</div><div class="example" id="ex-Defensive_Coding-TLS-OpenSSL-Init"><h6>Example 12.3. OpenSSL library initialization</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Comment">// The following call prints an error message and calls exit() if</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// the OpenSSL configuration file is unreadable.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>OPENSSL_config(NULL);
+<span class="perl_Comment">// Provide human-readable error messages.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>SSL_load_error_strings();
+<span class="perl_Comment">// Register ciphers.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>SSL_library_init();
+</pre></div></div><br class="example-break" /><div class="para">
+				After that, a context object has to be created, which acts as a factory for connection objects (<a class="xref" href="#ex-Defensive_Coding-TLS-Client-OpenSSL-CTX">Example 12.4, “OpenSSL client context creation”</a>). We use an explicit cipher list so that we do not pick up any strange ciphers when OpenSSL is upgraded. The actual version requested in the client hello depends on additional restrictions in the OpenSSL library. If possible, you should follow the example code and use the default list of trusted root certificate authorities provided by the system because you would have to maintain your own set otherwise, which can be cumbersome.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-Client-OpenSSL-CTX"><h6>Example 12.4. OpenSSL client context creation</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Comment">// Configure a client connection context.  Send a hendshake for the</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// highest supported TLS version, and disable compression.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_DataType">const</span> SSL_METHOD *<span class="perl_DataType">const</span> req_method = SSLv23_client_method();
+SSL_CTX *<span class="perl_DataType">const</span> ctx = SSL_CTX_new(req_method);
+<span class="perl_Keyword">if</span> (ctx == NULL) {
+  ERR_print_errors(bio_err);
+  exit(<span class="perl_Float">1</span>);
+}
+SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv2 | SSL_OP_NO_COMPRESSION);
+
+<span class="perl_Comment">// Adjust the ciphers list based on a whitelist.  First enable all</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// ciphers of at least medium strength, to get the list which is</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// compiled into OpenSSL.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Keyword">if</span> (SSL_CTX_set_cipher_list(ctx, <span class="perl_String">"HIGH:MEDIUM"</span>) != <span class="perl_Float">1</span>) {
+  ERR_print_errors(bio_err);
+  exit(<span class="perl_Float">1</span>);
+}
+{
+  <span class="perl_Comment">// Create a dummy SSL session to obtain the cipher list.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>  SSL *ssl = SSL_new(ctx);
+  <span class="perl_Keyword">if</span> (ssl == NULL) {
+    ERR_print_errors(bio_err);
+    exit(<span class="perl_Float">1</span>);
+  }
+  STACK_OF(SSL_CIPHER) *active_ciphers = SSL_get_ciphers(ssl);
+  <span class="perl_Keyword">if</span> (active_ciphers == NULL) {
+    ERR_print_errors(bio_err);
+    exit(<span class="perl_Float">1</span>);
+  }
+  <span class="perl_Comment">// Whitelist of candidate ciphers.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>  <span class="perl_DataType">static</span> <span class="perl_DataType">const</span> <span class="perl_DataType">char</span> *<span class="perl_DataType">const</span> candidates[] =  {
+    <span class="perl_String">"AES128-GCM-SHA256"</span>, <span class="perl_String">"AES128-SHA256"</span>, <span class="perl_String">"AES256-SHA256"</span>, <span class="perl_Comment">// strong ciphers</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>    <span class="perl_String">"AES128-SHA"</span>, <span class="perl_String">"AES256-SHA"</span>, <span class="perl_Comment">// strong ciphers, also in older versions</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>    <span class="perl_String">"RC4-SHA"</span>, <span class="perl_String">"RC4-MD5"</span>, <span class="perl_Comment">// backwards compatibility, supposed to be weak</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>    <span class="perl_String">"DES-CBC3-SHA"</span>, <span class="perl_String">"DES-CBC3-MD5"</span>, <span class="perl_Comment">// more backwards compatibility</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>    NULL
+  };
+  <span class="perl_Comment">// Actually selected ciphers.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>  <span class="perl_DataType">char</span> ciphers[<span class="perl_Float">300</span>];
+  ciphers[0] = '\0';
+  <span class="perl_Keyword">for</span> (<span class="perl_DataType">const</span> <span class="perl_DataType">char</span> *<span class="perl_DataType">const</span> *c = candidates; *c; ++c) {
+    <span class="perl_Keyword">for</span> (<span class="perl_DataType">int</span> i = 0; i &lt; sk_SSL_CIPHER_num(active_ciphers); ++i) {
+	<span class="perl_Keyword">if</span> (strcmp(SSL_CIPHER_get_name(sk_SSL_CIPHER_value(active_ciphers, i)),
+		   *c) == 0) {
+	  <span class="perl_Keyword">if</span> (*ciphers) {
+	    strcat(ciphers, <span class="perl_String">":"</span>);
+	  }
+	  strcat(ciphers, *c);
+	  <span class="perl_Keyword">break</span>;
+	}
+    }
+  }
+  SSL_free(ssl);
+  <span class="perl_Comment">// Apply final cipher list.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>  <span class="perl_Keyword">if</span> (SSL_CTX_set_cipher_list(ctx, ciphers) != <span class="perl_Float">1</span>) {
+    ERR_print_errors(bio_err);
+    exit(<span class="perl_Float">1</span>);
+  }
+}
+
+<span class="perl_Comment">// Load the set of trusted root certificates.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Keyword">if</span> (!SSL_CTX_set_default_verify_paths(ctx)) {
+  ERR_print_errors(bio_err);
+  exit(<span class="perl_Float">1</span>);
+}
+</pre></div></div><br class="example-break" /><div class="para">
+				A single context object can be used to create multiple connection objects. It is safe to use the same <code class="literal">SSL_CTX</code> object for creating connections concurrently from multiple threads, provided that the <code class="literal">SSL_CTX</code> object is not modified (e.g., callbacks must not be changed).
+			</div><div class="para">
+				After creating the TCP socket and disabling the Nagle algorithm (per <a class="xref" href="#ex-Defensive_Coding-TLS-Nagle">Example 12.1, “Deactivating the TCP Nagle algorithm”</a>), the actual connection object needs to be created, as show in <a class="xref" href="#ex-Defensive_Coding-TLS-Client-OpenSSL-CTX">Example 12.4, “OpenSSL client context creation”</a>. If the handshake started by <code class="function">SSL_connect</code> fails, the <code class="function">ssl_print_error_and_exit</code> function from <a class="xref" href="#ex-Defensive_Coding-TLS-OpenSSL-Errors">Example 12.2, “Obtaining OpenSSL error codes”</a> is called.
+			</div><div class="para">
+				The <code class="function">certificate_validity_override</code> function provides an opportunity to override the validity of the certificate in case the OpenSSL check fails. If such functionality is not required, the call can be removed, otherwise, the application developer has to implement it.
+			</div><div class="para">
+				The host name passed to the functions <code class="function">SSL_set_tlsext_host_name</code> and <code class="function">X509_check_host</code> must be the name that was passed to <code class="function">getaddrinfo</code> or a similar name resolution function. No host name canonicalization must be performed. The <code class="function">X509_check_host</code> function used in the final step for host name matching is currently only implemented in OpenSSL 1.1, which is not released yet. In case host name matching fails, the function <code class="function">certificate_host_name_override</code> is called. This function should check user-specific certificate store, to allow a connection even if the host name does not match the certificate. This function has to be provided by the application developer. Note that the override must be keyed by both the certificate <span class="emphasis"><em>and</em></span> the host name.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-Client-OpenSSL-Connect"><h6>Example 12.5. Creating a client connection using OpenSSL</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Comment">// Create the connection object.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>SSL *ssl = SSL_new(ctx);
+<span class="perl_Keyword">if</span> (ssl == NULL) {
+  ERR_print_errors(bio_err);
+  exit(<span class="perl_Float">1</span>);
+}
+SSL_set_fd(ssl, sockfd);
+
+<span class="perl_Comment">// Enable the ServerNameIndication extension</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Keyword">if</span> (!SSL_set_tlsext_host_name(ssl, host)) {
+  ERR_print_errors(bio_err);
+  exit(<span class="perl_Float">1</span>);
+}
+
+<span class="perl_Comment">// Perform the TLS handshake with the server.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>ret = SSL_connect(ssl);
+<span class="perl_Keyword">if</span> (ret != <span class="perl_Float">1</span>) {
+  <span class="perl_Comment">// Error status can be 0 or negative.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>  ssl_print_error_and_exit(ssl, <span class="perl_String">"SSL_connect"</span>, ret);
+}
+
+<span class="perl_Comment">// Obtain the server certificate.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>X509 *peercert = SSL_get_peer_certificate(ssl);
+<span class="perl_Keyword">if</span> (peercert == NULL) {
+  fprintf(stderr, <span class="perl_String">"peer certificate missing"</span>);
+  exit(<span class="perl_Float">1</span>);
+}
+
+<span class="perl_Comment">// Check the certificate verification result.  Allow an explicit</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// certificate validation override in case verification fails.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_DataType">int</span> verifystatus = SSL_get_verify_result(ssl);
+<span class="perl_Keyword">if</span> (verifystatus != X509_V_OK &amp;&amp; !certificate_validity_override(peercert)) {
+  fprintf(stderr, <span class="perl_String">"SSL_connect: verify result: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    X509_verify_cert_error_string(verifystatus));
+  exit(<span class="perl_Float">1</span>);
+}
+
+<span class="perl_Comment">// Check if the server certificate matches the host name used to</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// establish the connection.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// </span><span class="perl_Alert">FIXME</span><span class="perl_Comment">: Currently needs OpenSSL 1.1.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Keyword">if</span> (X509_check_host(peercert, (<span class="perl_DataType">const</span> <span class="perl_DataType">unsigned</span> <span class="perl_DataType">char</span> *)host, strlen(host),
+		      0) != <span class="perl_Float">1</span>
+    &amp;&amp; !certificate_host_name_override(peercert, host)) {
+  fprintf(stderr, <span class="perl_String">"SSL certificate does not match host name</span><span class="perl_Char">\n</span><span class="perl_String">"</span>);
+  exit(<span class="perl_Float">1</span>);
+}
+
+X509_free(peercert);
+
+</pre></div></div><br class="example-break" /><div class="para">
+				The connection object can be used for sending and receiving data, as in <a class="xref" href="#ex-Defensive_Coding-TLS-OpenSSL-Connection-Use">Example 12.6, “Using an OpenSSL connection to send and receive data”</a>. It is also possible to create a <code class="literal">BIO</code> object and use the <code class="literal">SSL</code> object as the underlying transport, using <code class="function">BIO_set_ssl</code>.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-OpenSSL-Connection-Use"><h6>Example 12.6. Using an OpenSSL connection to send and receive data</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_DataType">const</span> <span class="perl_DataType">char</span> *<span class="perl_DataType">const</span> req = <span class="perl_String">"GET / HTTP/1.0</span><span class="perl_Char">\r\n\r\n</span><span class="perl_String">"</span>;
+<span class="perl_Keyword">if</span> (SSL_write(ssl, req, strlen(req)) &lt; 0) {
+  ssl_print_error_and_exit(ssl, <span class="perl_String">"SSL_write"</span>, ret);
+}
+<span class="perl_DataType">char</span> buf[4096];
+ret = SSL_read(ssl, buf, <span class="perl_Keyword">sizeof</span>(buf));
+<span class="perl_Keyword">if</span> (ret &lt; 0) {
+  ssl_print_error_and_exit(ssl, <span class="perl_String">"SSL_read"</span>, ret);
+}
+</pre></div></div><br class="example-break" /><div class="para">
+				When it is time to close the connection, the <code class="function">SSL_shutdown</code> function needs to be called twice for an orderly, synchronous connection termination (<a class="xref" href="#ex-Defensive_Coding-TLS-OpenSSL-Connection-Close">Example 12.7, “Closing an OpenSSL connection in an orderly fashion”</a>). This exchanges <code class="literal">close_notify</code> alerts with the server. The additional logic is required to deal with an unexpected <code class="literal">close_notify</code> from the server. Note that is necessary to explicitly close the underlying socket after the connection object has been freed.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-OpenSSL-Connection-Close"><h6>Example 12.7. Closing an OpenSSL connection in an orderly fashion</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Comment">// Send the close_notify alert.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>ret = SSL_shutdown(ssl);
+<span class="perl_Keyword">switch</span> (ret) {
+<span class="perl_Keyword">case</span> <span class="perl_Float">1</span>:
+  <span class="perl_Comment">// A close_notify alert has already been received.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>  <span class="perl_Keyword">break</span>;
+<span class="perl_Keyword">case</span> 0:
+  <span class="perl_Comment">// Wait for the close_notify alert from the peer.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>  ret = SSL_shutdown(ssl);
+  <span class="perl_Keyword">switch</span> (ret) {
+  <span class="perl_Keyword">case</span> 0:
+    fprintf(stderr, <span class="perl_String">"info: second SSL_shutdown returned zero</span><span class="perl_Char">\n</span><span class="perl_String">"</span>);
+    <span class="perl_Keyword">break</span>;
+  <span class="perl_Keyword">case</span> <span class="perl_Float">1</span>:
+    <span class="perl_Keyword">break</span>;
+  <span class="perl_Keyword">default</span>:
+    ssl_print_error_and_exit(ssl, <span class="perl_String">"SSL_shutdown 2"</span>, ret);
+  }
+  <span class="perl_Keyword">break</span>;
+<span class="perl_Keyword">default</span>:
+  ssl_print_error_and_exit(ssl, <span class="perl_String">"SSL_shutdown 1"</span>, ret);
+}
+SSL_free(ssl);
+close(sockfd);
+</pre></div></div><br class="example-break" /><div class="para">
+				<a class="xref" href="#ex-Defensive_Coding-TLS-OpenSSL-Context-Close">Example 12.8, “Closing an OpenSSL connection in an orderly fashion”</a> shows how to deallocate the context object when it is no longer needed because no further TLS connections will be established.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-OpenSSL-Context-Close"><h6>Example 12.8. Closing an OpenSSL connection in an orderly fashion</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+SSL_CTX_free(ctx);
+</pre></div></div><br class="example-break" /></div><div class="section" id="sect-Defensive_Coding-TLS-Client-GNUTLS"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">12.2.2. Implementation TLS Clients With GNUTLS</h3></div></div></div><div class="para">
+				This section describes how to implement a TLS client with full certificate validation (but without certificate revocation checking). Note that the error handling in is only exploratory and needs to be replaced before production use.
+			</div><div class="para">
+				The GNUTLS library needs explicit initialization:
+			</div><div class="informalexample" id="ex-Defensive_Coding-TLS-GNUTLS-Init"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+gnutls_global_init();
+</pre></div><div class="para">
+				Failing to do so can result in obscure failures in Base64 decoding. See <a class="xref" href="#sect-Defensive_Coding-TLS-Pitfalls-GNUTLS">Section 12.1.2, “GNUTLS Pitfalls”</a> for additional aspects of initialization.
+			</div><div class="para">
+				Before setting up TLS connections, a credentials objects has to be allocated and initialized with the set of trusted root CAs (<a class="xref" href="#ex-Defensive_Coding-TLS-Client-GNUTLS-Credentials">Example 12.9, “Initializing a GNUTLS credentials structure”</a>).
+			</div><div class="example" id="ex-Defensive_Coding-TLS-Client-GNUTLS-Credentials"><h6>Example 12.9. Initializing a GNUTLS credentials structure</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Comment">// Load the trusted CA certificates.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>gnutls_certificate_credentials_t cred = NULL;
+<span class="perl_DataType">int</span> ret = gnutls_certificate_allocate_credentials (&amp;cred);
+<span class="perl_Keyword">if</span> (ret != GNUTLS_E_SUCCESS) {
+  fprintf(stderr, <span class="perl_String">"error: gnutls_certificate_allocate_credentials: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    gnutls_strerror(ret));
+  exit(<span class="perl_Float">1</span>);
+}
+<span class="perl_Comment">// gnutls_certificate_set_x509_system_trust needs GNUTLS version 3.0</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// or newer, so we hard-code the path to the certificate store</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// instead.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_DataType">static</span> <span class="perl_DataType">const</span> <span class="perl_DataType">char</span> ca_bundle[] = <span class="perl_String">"/etc/ssl/certs/ca-bundle.crt"</span>;
+ret = gnutls_certificate_set_x509_trust_file
+  (cred, ca_bundle, GNUTLS_X509_FMT_PEM);
+<span class="perl_Keyword">if</span> (ret == 0) {
+  fprintf(stderr, <span class="perl_String">"error: no certificates found in: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>, ca_bundle);
+  exit(<span class="perl_Float">1</span>);
+}
+<span class="perl_Keyword">if</span> (ret &lt; 0) {
+  fprintf(stderr, <span class="perl_String">"error: gnutls_certificate_set_x509_trust_files(%s): %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    ca_bundle, gnutls_strerror(ret));
+  exit(<span class="perl_Float">1</span>);
+}
+</pre></div></div><br class="example-break" /><div class="para">
+				After the last TLS connection has been closed, this credentials object should be freed:
+			</div><div class="informalexample"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+gnutls_certificate_free_credentials(cred);
+</pre></div><div class="para">
+				During its lifetime, the credentials object can be used to initialize TLS session objects from multiple threads, provided that it is not changed.
+			</div><div class="para">
+				Once the TCP connection has been established, the Nagle algorithm should be disabled (see <a class="xref" href="#ex-Defensive_Coding-TLS-Nagle">Example 12.1, “Deactivating the TCP Nagle algorithm”</a>). After that, the socket can be associated with a new GNUTLS session object. The previously allocated credentials object provides the set of root CAs. The <code class="literal">NORMAL</code> set of cipher suites and protocols provides a reasonable default. Then the TLS handshake must be initiated. This is shown in <a class="xref" href="#ex-Defensive_Coding-TLS-Client-GNUTLS-Connect">Example 12.10, “Establishing a TLS client connection using GNUTLS”</a>.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-Client-GNUTLS-Connect"><h6>Example 12.10. Establishing a TLS client connection using GNUTLS</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Comment">// Create the session object.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>gnutls_session_t session;
+ret = gnutls_init(&amp;session, GNUTLS_CLIENT);
+<span class="perl_Keyword">if</span> (ret != GNUTLS_E_SUCCESS) {
+  fprintf(stderr, <span class="perl_String">"error: gnutls_init: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    gnutls_strerror(ret));
+  exit(<span class="perl_Float">1</span>);
+}
+
+<span class="perl_Comment">// Configure the cipher preferences.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_DataType">const</span> <span class="perl_DataType">char</span> *errptr = NULL;
+ret = gnutls_priority_set_direct(session, <span class="perl_String">"NORMAL"</span>, &amp;errptr);
+<span class="perl_Keyword">if</span> (ret != GNUTLS_E_SUCCESS) {
+  fprintf(stderr, <span class="perl_String">"error: gnutls_priority_set_direct: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>
+	    <span class="perl_String">"error: at: </span><span class="perl_Char">\"</span><span class="perl_String">%s</span><span class="perl_Char">\"\n</span><span class="perl_String">"</span>, gnutls_strerror(ret), errptr);
+  exit(<span class="perl_Float">1</span>);
+}
+
+<span class="perl_Comment">// Install the trusted certificates.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>ret = gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, cred);
+<span class="perl_Keyword">if</span> (ret != GNUTLS_E_SUCCESS) {
+  fprintf(stderr, <span class="perl_String">"error: gnutls_credentials_set: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    gnutls_strerror(ret));
+  exit(<span class="perl_Float">1</span>);
+}
+
+<span class="perl_Comment">// Associate the socket with the session object and set the server</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// name.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>gnutls_transport_set_ptr(session, (gnutls_transport_ptr_t)(uintptr_t)sockfd);
+ret = gnutls_server_name_set(session, GNUTLS_NAME_DNS,
+			       host, strlen(host));
+<span class="perl_Keyword">if</span> (ret != GNUTLS_E_SUCCESS) {
+  fprintf(stderr, <span class="perl_String">"error: gnutls_server_name_set: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    gnutls_strerror(ret));
+  exit(<span class="perl_Float">1</span>);
+}
+
+<span class="perl_Comment">// Establish the session.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>ret = gnutls_handshake(session);
+<span class="perl_Keyword">if</span> (ret != GNUTLS_E_SUCCESS) {
+  fprintf(stderr, <span class="perl_String">"error: gnutls_handshake: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    gnutls_strerror(ret));
+  exit(<span class="perl_Float">1</span>);
+}
+</pre></div></div><br class="example-break" /><div class="para">
+				After the handshake has been completed, the server certificate needs to be verified (<a class="xref" href="#ex-Defensive_Coding-TLS-Client-GNUTLS-Verify">Example 12.11, “Verifying a server certificate using GNUTLS”</a>). In the example, the user-defined <code class="function">certificate_validity_override</code> function is called if the verification fails, so that a separate, user-specific trust store can be checked. This function call can be omitted if the functionality is not needed.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-Client-GNUTLS-Verify"><h6>Example 12.11. Verifying a server certificate using GNUTLS</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Comment">// Obtain the server certificate chain.  The server certificate</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// itself is stored in the first element of the array.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_DataType">unsigned</span> certslen = 0;
+<span class="perl_DataType">const</span> gnutls_datum_t *<span class="perl_DataType">const</span> certs =
+  gnutls_certificate_get_peers(session, &amp;certslen);
+<span class="perl_Keyword">if</span> (certs == NULL || certslen == 0) {
+  fprintf(stderr, <span class="perl_String">"error: could not obtain peer certificate</span><span class="perl_Char">\n</span><span class="perl_String">"</span>);
+  exit(<span class="perl_Float">1</span>);
+}
+
+<span class="perl_Comment">// Validate the certificate chain.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_DataType">unsigned</span> status = (<span class="perl_DataType">unsigned</span>)<span class="perl_DecVal">-1</span>;
+ret = gnutls_certificate_verify_peers2(session, &amp;status);
+<span class="perl_Keyword">if</span> (ret != GNUTLS_E_SUCCESS) {
+  fprintf(stderr, <span class="perl_String">"error: gnutls_certificate_verify_peers2: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    gnutls_strerror(ret));
+  exit(<span class="perl_Float">1</span>);
+}
+<span class="perl_Keyword">if</span> (status != 0 &amp;&amp; !certificate_validity_override(certs[0])) {
+  gnutls_datum_t msg;
+<span class="perl_Others">#if GNUTLS_VERSION_AT_LEAST_3_1_4</span><span class="perl_Others"></span>
+<span class="perl_Others"></span>  <span class="perl_DataType">int</span> type = gnutls_certificate_type_get (session);
+  ret = gnutls_certificate_verification_status_print(status, type, &amp;out, 0);
+<span class="perl_Others">#else</span><span class="perl_Others"></span>
+<span class="perl_Others"></span>  ret = <span class="perl_DecVal">-1</span>;
+<span class="perl_Others">#endif</span><span class="perl_Others"></span>
+<span class="perl_Others"></span>  <span class="perl_Keyword">if</span> (ret == 0) {
+    fprintf(stderr, <span class="perl_String">"error: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>, msg.data);
+    gnutls_free(msg.data);
+    exit(<span class="perl_Float">1</span>);
+  } <span class="perl_Keyword">else</span> {
+    fprintf(stderr, <span class="perl_String">"error: certificate validation failed with code 0x%x</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	      status);
+    exit(<span class="perl_Float">1</span>);
+  }
+}
+</pre></div></div><br class="example-break" /><div class="para">
+				In the next step (<a class="xref" href="#ex-Defensive_Coding-TLS-Client-GNUTLS-Match">Example 12.12, “Matching the server host name and certificate in a GNUTLS client”</a>, the certificate must be matched against the host name (note the unusual return value from <code class="function">gnutls_x509_crt_check_hostname</code>). Again, an override function <code class="function">certificate_host_name_override</code> is called. Note that the override must be keyed to the certificate <span class="emphasis"><em>and</em></span> the host name. The function call can be omitted if the override is not needed.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-Client-GNUTLS-Match"><h6>Example 12.12. Matching the server host name and certificate in a GNUTLS client</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Comment">// Match the peer certificate against the host name.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// We can only obtain a set of DER-encoded certificates from the</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// session object, so we have to re-parse the peer certificate into</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// a certificate object.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>gnutls_x509_crt_t cert;
+ret = gnutls_x509_crt_init(&amp;cert);
+<span class="perl_Keyword">if</span> (ret != GNUTLS_E_SUCCESS) {
+  fprintf(stderr, <span class="perl_String">"error: gnutls_x509_crt_init: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    gnutls_strerror(ret));
+  exit(<span class="perl_Float">1</span>);
+}
+<span class="perl_Comment">// The peer certificate is the first certificate in the list.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>ret = gnutls_x509_crt_import(cert, certs, GNUTLS_X509_FMT_DER);
+<span class="perl_Keyword">if</span> (ret != GNUTLS_E_SUCCESS) {
+  fprintf(stderr, <span class="perl_String">"error: gnutls_x509_crt_import: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    gnutls_strerror(ret));
+  exit(<span class="perl_Float">1</span>);
+}
+ret = gnutls_x509_crt_check_hostname(cert, host);
+<span class="perl_Keyword">if</span> (ret == 0 &amp;&amp; !certificate_host_name_override(certs[0], host)) {
+  fprintf(stderr, <span class="perl_String">"error: host name does not match certificate</span><span class="perl_Char">\n</span><span class="perl_String">"</span>);
+  exit(<span class="perl_Float">1</span>);
+}
+gnutls_x509_crt_deinit(cert);
+</pre></div></div><br class="example-break" /><div class="para">
+				In newer GNUTLS versions, certificate checking and host name validation can be combined using the <code class="function">gnutls_certificate_verify_peers3</code> function.
+			</div><div class="para">
+				An established TLS session can be used for sending and receiving data, as in <a class="xref" href="#ex-Defensive_Coding-TLS-GNUTLS-Use">Example 12.13, “Using a GNUTLS session”</a>.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-GNUTLS-Use"><h6>Example 12.13. Using a GNUTLS session</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_DataType">char</span> buf[4096];
+snprintf(buf, <span class="perl_Keyword">sizeof</span>(buf), <span class="perl_String">"GET / HTTP/1.0</span><span class="perl_Char">\r\n</span><span class="perl_String">Host: %s</span><span class="perl_Char">\r\n\r\n</span><span class="perl_String">"</span>, host);
+ret = gnutls_record_send(session, buf, strlen(buf));
+<span class="perl_Keyword">if</span> (ret &lt; 0) {
+  fprintf(stderr, <span class="perl_String">"error: gnutls_record_send: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>, gnutls_strerror(ret));
+  exit(<span class="perl_Float">1</span>);
+}
+ret = gnutls_record_recv(session, buf, <span class="perl_Keyword">sizeof</span>(buf));
+<span class="perl_Keyword">if</span> (ret &lt; 0) {
+  fprintf(stderr, <span class="perl_String">"error: gnutls_record_recv: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>, gnutls_strerror(ret));
+  exit(<span class="perl_Float">1</span>);
+}
+</pre></div></div><br class="example-break" /><div class="para">
+				In order to shut down a connection in an orderly manner, you should call the <code class="function">gnutls_bye</code> function. Finally, the session object can be deallocated using <code class="function">gnutls_deinit</code> (see <a class="xref" href="#ex-Defensive_Coding-TLS-GNUTLS-Disconnect">Example 12.14, “Using a GNUTLS session”</a>).
+			</div><div class="example" id="ex-Defensive_Coding-TLS-GNUTLS-Disconnect"><h6>Example 12.14. Using a GNUTLS session</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Comment">// Initiate an orderly connection shutdown.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>ret = gnutls_bye(session, GNUTLS_SHUT_RDWR);
+<span class="perl_Keyword">if</span> (ret &lt; 0) {
+  fprintf(stderr, <span class="perl_String">"error: gnutls_bye: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>, gnutls_strerror(ret));
+  exit(<span class="perl_Float">1</span>);
+}
+<span class="perl_Comment">// Free the session object.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>gnutls_deinit(session);
+</pre></div></div><br class="example-break" /></div><div class="section" id="sect-Defensive_Coding-TLS-Client-OpenJDK"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">12.2.3. Implementing TLS Clients With OpenJDK</h3></div></div></div><div class="para">
+				The examples below use the following cryptographic-related classes:
+			</div><div class="informalexample"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Keyword">import</span> java.security.NoSuchAlgorithmException;
+<span class="perl_Keyword">import</span> java.security.NoSuchProviderException;
+<span class="perl_Keyword">import</span> java.security.cert.CertificateEncodingException;
+<span class="perl_Keyword">import</span> java.security.cert.CertificateException;
+<span class="perl_Keyword">import</span> java.security.cert.X509Certificate;
+<span class="perl_Keyword">import</span> javax.net.ssl.SSLContext;
+<span class="perl_Keyword">import</span> javax.net.ssl.SSLParameters;
+<span class="perl_Keyword">import</span> javax.net.ssl.SSLSocket;
+<span class="perl_Keyword">import</span> javax.net.ssl.TrustManager;
+<span class="perl_Keyword">import</span> javax.net.ssl.X509TrustManager;
+
+<span class="perl_Keyword">import sun.security.util.HostnameChecker;</span>
+</pre></div><div class="para">
+				If compatibility with OpenJDK 6 is required, it is necessary to use the internal class <code class="literal">sun.security.util.HostnameChecker</code>. (The public OpenJDK API does not provide any support for dissecting the subject distinguished name of an X.509 certificate, so a custom-written DER parser is needed—or we have to use an internal class, which we do below.) In OpenJDK 7, the <code class="function">setEndpointIdentificationAlgorithm</code> method was added to the <code class="literal">javax.net.ssl.SSLParameters</code> class, providing an official way to implement host name checking.
+			</div><div class="para">
+				TLS connections are established using an <code class="literal">SSLContext</code> instance. With a properly configured OpenJDK installation, the <code class="literal">SunJSSE</code> provider uses the system-wide set of trusted root certificate authorities, so no further configuration is necessary. For backwards compatibility with OpenJDK 6, the <code class="literal">TLSv1</code> provider has to be supported as a fall-back option. This is shown in <a class="xref" href="#ex-Defensive_Coding-TLS-Client-OpenJDK-Context">Example 12.15, “Setting up an <code class="literal">SSLContext</code> for OpenJDK TLS clients”</a>.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-Client-OpenJDK-Context"><h6>Example 12.15. Setting up an <code class="literal">SSLContext</code> for OpenJDK TLS clients</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Comment">// Create the context.  Specify the SunJSSE provider to avoid</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// picking up third-party providers.  Try the TLS 1.2 provider</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// first, then fall back to TLS 1.0.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>SSLContext ctx;
+<span class="perl_Keyword">try</span> {
+    ctx = SSLContext.<span class="perl_Function">getInstance</span>(<span class="perl_String">"TLSv1.2"</span>, <span class="perl_String">"SunJSSE"</span>);
+} <span class="perl_Keyword">catch</span> (NoSuchAlgorithmException e) {
+    <span class="perl_Keyword">try</span> {
+        ctx = SSLContext.<span class="perl_Function">getInstance</span>(<span class="perl_String">"TLSv1"</span>, <span class="perl_String">"SunJSSE"</span>);
+    } <span class="perl_Keyword">catch</span> (NoSuchAlgorithmException e1) {
+        <span class="perl_Comment">// The TLS 1.0 provider should always be available.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>        <span class="perl_Keyword">throw</span> <span class="perl_Keyword">new</span> AssertionError(e1);
+    } <span class="perl_Keyword">catch</span> (NoSuchProviderException e1) {
+        <span class="perl_Keyword">throw</span> <span class="perl_Keyword">new</span> AssertionError(e1);
+    } 
+} <span class="perl_Keyword">catch</span> (NoSuchProviderException e) {
+    <span class="perl_Comment">// The SunJSSE provider should always be available.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>    <span class="perl_Keyword">throw</span> <span class="perl_Keyword">new</span> AssertionError(e);
+}
+ctx.<span class="perl_Function">init</span>(<span class="perl_Keyword">null</span>, <span class="perl_Keyword">null</span>, <span class="perl_Keyword">null</span>);
+</pre></div></div><br class="example-break" /><div class="para">
+				In addition to the context, a TLS parameter object will be needed which adjusts the cipher suites and protocols (<a class="xref" href="#ex-Defensive_Coding-TLS-OpenJDK-Parameters">Example 12.16, “Setting up <code class="literal">SSLParameters</code> for TLS use with OpenJDK”</a>). Like the context, these parameters can be reused for multiple TLS connections.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-OpenJDK-Parameters"><h6>Example 12.16. Setting up <code class="literal">SSLParameters</code> for TLS use with OpenJDK</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Comment">// Prepare TLS parameters.  These have to applied to every TLS</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// socket before the handshake is triggered.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>SSLParameters params = ctx.<span class="perl_Function">getDefaultSSLParameters</span>();
+<span class="perl_Comment">// Do not send an SSL-2.0-compatible Client Hello.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>ArrayList&lt;String&gt; protocols = <span class="perl_Keyword">new</span> ArrayList&lt;String&gt;(
+    Arrays.<span class="perl_Function">asList</span>(params.<span class="perl_Function">getProtocols</span>()));
+protocols.<span class="perl_Function">remove</span>(<span class="perl_String">"SSLv2Hello"</span>);
+params.<span class="perl_Function">setProtocols</span>(protocols.<span class="perl_Function">toArray</span>(<span class="perl_Keyword">new</span> String[protocols.<span class="perl_Function">size</span>()]));
+<span class="perl_Comment">// Adjust the supported ciphers.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>ArrayList&lt;String&gt; ciphers = <span class="perl_Keyword">new</span> ArrayList&lt;String&gt;(
+    Arrays.<span class="perl_Function">asList</span>(params.<span class="perl_Function">getCipherSuites</span>()));
+ciphers.<span class="perl_Function">retainAll</span>(Arrays.<span class="perl_Function">asList</span>(
+    <span class="perl_String">"TLS_RSA_WITH_AES_128_CBC_SHA256"</span>,
+    <span class="perl_String">"TLS_RSA_WITH_AES_256_CBC_SHA256"</span>,
+    <span class="perl_String">"TLS_RSA_WITH_AES_256_CBC_SHA"</span>,
+    <span class="perl_String">"TLS_RSA_WITH_AES_128_CBC_SHA"</span>,
+    <span class="perl_String">"SSL_RSA_WITH_3DES_EDE_CBC_SHA"</span>,
+    <span class="perl_String">"SSL_RSA_WITH_RC4_128_SHA1"</span>,
+    <span class="perl_String">"SSL_RSA_WITH_RC4_128_MD5"</span>,
+    <span class="perl_String">"TLS_EMPTY_RENEGOTIATION_INFO_SCSV"</span>));
+params.<span class="perl_Function">setCipherSuites</span>(ciphers.<span class="perl_Function">toArray</span>(<span class="perl_Keyword">new</span> String[ciphers.<span class="perl_Function">size</span>()]));
+</pre></div></div><br class="example-break" /><div class="para">
+				As initialized above, the parameter object does not yet require host name checking. This has to be enabled separately, and this is only supported by OpenJDK 7 and later:
+			</div><div class="informalexample"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+params.<span class="perl_Function">setEndpointIdentificationAlgorithm</span>(<span class="perl_String">"HTTPS"</span>);
+</pre></div><div class="para">
+				All application protocols can use the <code class="literal">"HTTPS"</code> algorithm. (The algorithms have minor differences with regard to wildcard handling, which should not matter in practice.)
+			</div><div class="para">
+				<a class="xref" href="#ex-Defensive_Coding-TLS-Client-OpenJDK-Connect">Example 12.17, “Establishing a TLS connection with OpenJDK”</a> shows how to establish the connection. Before the handshake is initialized, the protocol and cipher configuration has to be performed, by applying the parameter object <code class="literal">params</code>. (After this point, changes to <code class="literal">params</code> will not affect this TLS socket.) As mentioned initially, host name checking requires using an internal API on OpenJDK 6.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-Client-OpenJDK-Connect"><h6>Example 12.17. Establishing a TLS connection with OpenJDK</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Comment">// Create the socket and connect it at the TCP layer.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>SSLSocket socket = (SSLSocket) ctx.<span class="perl_Function">getSocketFactory</span>()
+    .<span class="perl_Function">createSocket</span>(host, port);
+
+<span class="perl_Comment">// Disable the Nagle algorithm.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>socket.<span class="perl_Function">setTcpNoDelay</span>(<span class="perl_Keyword">true</span>);
+
+<span class="perl_Comment">// Adjust ciphers and protocols.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>socket.<span class="perl_Function">setSSLParameters</span>(params);
+
+<span class="perl_Comment">// Perform the handshake.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>socket.<span class="perl_Function">startHandshake</span>();
+
+<span class="perl_Comment">// Validate the host name.  The match() method throws</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// CertificateException on failure.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>X509Certificate peer = (X509Certificate)
+    socket.<span class="perl_Function">getSession</span>().<span class="perl_Function">getPeerCertificates</span>()[<span class="perl_Float">0</span>];
+<span class="perl_Comment">// This is the only way to perform host name checking on OpenJDK 6.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>HostnameChecker.<span class="perl_Function">getInstance</span>(HostnameChecker.<span class="perl_Function">TYPE_TLS</span>).<span class="perl_Function">match</span>(
+    host, peer);
+</pre></div></div><br class="example-break" /><div class="para">
+				Starting with OpenJDK 7, the last lines can be omitted, provided that host name verification has been enabled by calling the <code class="function">setEndpointIdentificationAlgorithm</code> method on the <code class="literal">params</code> object (before it was applied to the socket).
+			</div><div class="para">
+				The TLS socket can be used as a regular socket, as shown in <a class="xref" href="#ex-Defensive_Coding-TLS-Client-OpenJDK-Use">Example 12.18, “Using a TLS client socket in OpenJDK”</a>.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-Client-OpenJDK-Use"><h6>Example 12.18. Using a TLS client socket in OpenJDK</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+socket.<span class="perl_Function">getOutputStream</span>().<span class="perl_Function">write</span>(<span class="perl_String">"GET / HTTP/1.0</span><span class="perl_Char">\r\n\r\n</span><span class="perl_String">"</span>
+    .<span class="perl_Function">getBytes</span>(Charset.<span class="perl_Function">forName</span>(<span class="perl_String">"UTF-8"</span>)));
+<span class="perl_DataType">byte</span>[] buffer = <span class="perl_Keyword">new</span> <span class="perl_DataType">byte</span>[<span class="perl_Float">4096</span>];
+<span class="perl_DataType">int</span> count = socket.<span class="perl_Function">getInputStream</span>().<span class="perl_Function">read</span>(buffer);
+System.<span class="perl_Function">out</span>.<span class="perl_Function">write</span>(buffer, <span class="perl_Float">0</span>, count);
+</pre></div></div><br class="example-break" /><div class="section" id="idm119366704"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="idm119366704">12.2.3.1. Overriding server certificate validation with OpenJDK 6</h4></div></div></div><div class="para">
+					Overriding certificate validation requires a custom trust manager. With OpenJDK 6, the trust manager lacks information about the TLS session, and to which server the connection is made. Certificate overrides have to be tied to specific servers (host names). Consequently, different <code class="literal">TrustManager</code> and <code class="literal">SSLContext</code> objects have to be used for different servers.
+				</div><div class="para">
+					In the trust manager shown in <a class="xref" href="#ex-Defensive_Coding-TLS-Client-MyTrustManager">Example 12.19, “A customer trust manager for OpenJDK TLS clients”</a>, the server certificate is identified by its SHA-256 hash.
+				</div><div class="example" id="ex-Defensive_Coding-TLS-Client-MyTrustManager"><h6>Example 12.19. A customer trust manager for OpenJDK TLS clients</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Keyword">public</span> <span class="perl_Keyword">class</span> MyTrustManager <span class="perl_Keyword">implements</span> X509TrustManager {
+    <span class="perl_Keyword">private</span> <span class="perl_DataType">final</span> <span class="perl_DataType">byte</span>[] certHash;
+
+    <span class="perl_Keyword">public</span> <span class="perl_Function">MyTrustManager</span>(<span class="perl_DataType">byte</span>[] certHash) <span class="perl_Keyword">throws</span> Exception {
+        <span class="perl_Keyword">this</span>.<span class="perl_Function">certHash</span> = certHash;
+    }
+
+    @Override
+    <span class="perl_Keyword">public</span> <span class="perl_DataType">void</span> <span class="perl_Function">checkClientTrusted</span>(X509Certificate[] chain, String authType)
+            <span class="perl_Keyword">throws</span> CertificateException {
+        <span class="perl_Keyword">throw</span> <span class="perl_Keyword">new</span> UnsupportedOperationException();
+    }
+
+    @Override
+    <span class="perl_Keyword">public</span> <span class="perl_DataType">void</span> <span class="perl_Function">checkServerTrusted</span>(X509Certificate[] chain,
+            String authType) <span class="perl_Keyword">throws</span> CertificateException {
+        <span class="perl_DataType">byte</span>[] digest = <span class="perl_Function">getCertificateDigest</span>(chain[<span class="perl_Float">0</span>]);
+        String digestHex = <span class="perl_Function">formatHex</span>(digest);
+
+        <span class="perl_Keyword">if</span> (Arrays.<span class="perl_Function">equals</span>(digest, certHash)) {
+            System.<span class="perl_Function">err</span>.<span class="perl_Function">println</span>(<span class="perl_String">"info: accepting certificate: "</span> + digestHex);
+        } <span class="perl_Keyword">else</span> {
+            <span class="perl_Keyword">throw</span> <span class="perl_Keyword">new</span> CertificateException(<span class="perl_String">"certificate rejected: "</span>  +
+                    digestHex);
+        }
+    }
+
+    @Override
+    <span class="perl_Keyword">public</span> X509Certificate[] <span class="perl_Function">getAcceptedIssuers</span>() {
+        <span class="perl_Keyword">return</span> <span class="perl_Keyword">new</span> X509Certificate[<span class="perl_Float">0</span>];
+    }
+}
+</pre></div></div><br class="example-break" /><div class="para">
+					This trust manager has to be passed to the <code class="literal">init</code> method of the <code class="literal">SSLContext</code> object, as show in <a class="xref" href="#ex-Defensive_Coding-TLS-Client-Context_For_Cert">Example 12.20, “Using a custom TLS trust manager with OpenJDK”</a>.
+				</div><div class="example" id="ex-Defensive_Coding-TLS-Client-Context_For_Cert"><h6>Example 12.20. Using a custom TLS trust manager with OpenJDK</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+SSLContext ctx;
+<span class="perl_Keyword">try</span> {
+    ctx = SSLContext.<span class="perl_Function">getInstance</span>(<span class="perl_String">"TLSv1.2"</span>, <span class="perl_String">"SunJSSE"</span>);
+} <span class="perl_Keyword">catch</span> (NoSuchAlgorithmException e) {
+    <span class="perl_Keyword">try</span> {
+        ctx = SSLContext.<span class="perl_Function">getInstance</span>(<span class="perl_String">"TLSv1"</span>, <span class="perl_String">"SunJSSE"</span>);
+    } <span class="perl_Keyword">catch</span> (NoSuchAlgorithmException e1) {
+        <span class="perl_Keyword">throw</span> <span class="perl_Keyword">new</span> AssertionError(e1);
+    } <span class="perl_Keyword">catch</span> (NoSuchProviderException e1) {
+        <span class="perl_Keyword">throw</span> <span class="perl_Keyword">new</span> AssertionError(e1);
+    }
+} <span class="perl_Keyword">catch</span> (NoSuchProviderException e) {
+    <span class="perl_Keyword">throw</span> <span class="perl_Keyword">new</span> AssertionError(e);
+}
+MyTrustManager tm = <span class="perl_Keyword">new</span> <span class="perl_Function">MyTrustManager</span>(certHash);
+ctx.<span class="perl_Function">init</span>(<span class="perl_Keyword">null</span>, <span class="perl_Keyword">new</span> TrustManager[] {tm}, <span class="perl_Keyword">null</span>);
+</pre></div></div><br class="example-break" /><div class="para">
+					When certificate overrides are in place, host name verification should not be performed because there is no security requirement that the host name in the certificate matches the host name used to establish the connection (and it often will not). However, without host name verification, it is not possible to perform transparent fallback to certification validation using the system certificate store.
+				</div><div class="para">
+					The approach described above works with OpenJDK 6 and later versions. Starting with OpenJDK 7, it is possible to use a custom subclass of the <code class="literal">javax.net.ssl.X509ExtendedTrustManager</code> class. The OpenJDK TLS implementation will call the new methods, passing along TLS session information. This can be used to implement certificate overrides as a fallback (if certificate or host name verification fails), and a trust manager object can be used for multiple servers because the server address is available to the trust manager.
+				</div></div></div><div class="section" id="sect-Defensive_Coding-TLS-Client-NSS"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">12.2.4. Implementing TLS Clients With NSS</h3></div></div></div><div class="para">
+				The following code shows how to implement a simple TLS client using NSS. Note that the error handling needs replacing before production use.
+			</div><div class="para">
+				Using NSS needs several header files, as shown in <a class="xref" href="#ex-Defensive_Coding-TLS-NSS-Includes">Example 12.21, “Include files for NSS”</a>.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-NSS-Includes"><h6>Example 12.21. Include files for NSS</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Comment">// NSPR include files</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Others">#include &lt;prerror.h&gt;</span><span class="perl_Others"></span>
+<span class="perl_Others"></span><span class="perl_Others">#include &lt;prinit.h&gt;</span><span class="perl_Others"></span>
+<span class="perl_Others"></span>
+<span class="perl_Comment">// NSS include files</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Others">#include &lt;nss.h&gt;</span><span class="perl_Others"></span>
+<span class="perl_Others"></span><span class="perl_Others">#include &lt;pk11pub.h&gt;</span><span class="perl_Others"></span>
+<span class="perl_Others"></span><span class="perl_Others">#include &lt;secmod.h&gt;</span><span class="perl_Others"></span>
+<span class="perl_Others"></span><span class="perl_Others">#include &lt;ssl.h&gt;</span><span class="perl_Others"></span>
+<span class="perl_Others"></span><span class="perl_Others">#include &lt;sslproto.h&gt;</span><span class="perl_Others"></span>
+<span class="perl_Others"></span>
+<span class="perl_Comment">// Private API, no other way to turn a POSIX file descriptor into an</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// NSPR handle.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>NSPR_API(PRFileDesc*) PR_ImportTCPSocket(<span class="perl_DataType">int</span>);
+</pre></div></div><br class="example-break" /><div class="para">
+				Initializing the NSS library is a complex task (<a class="xref" href="#ex-Defensive_Coding-TLS-NSS-Init">Example 12.22, “Initializing the NSS library”</a>). It is not thread-safe. By default, the library is in export mode, and all strong ciphers are disabled. Therefore, after creating the <code class="literal">NSSInitCContext</code> object, we probe all the strong ciphers we want to use, and check if at least one of them is available. If not, we call <code class="function">NSS_SetDomesticPolicy</code> to switch to unrestricted policy mode. This function replaces the existing global cipher suite policy, that is why we avoid calling it unless absolutely necessary.
+			</div><div class="para">
+				The simplest way to configured the trusted root certificates involves loading the <code class="filename">libnssckbi.so</code> NSS module with a call to the <code class="function">SECMOD_LoadUserModule</code> function. The root certificates are compiled into this module. (The PEM module for NSS, <code class="filename">libnsspem.so</code>, offers a way to load trusted CA certificates from a file.)
+			</div><div class="example" id="ex-Defensive_Coding-TLS-NSS-Init"><h6>Example 12.22. Initializing the NSS library</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+PR_Init(PR_USER_THREAD, PR_PRIORITY_NORMAL, 0);
+NSSInitContext *<span class="perl_DataType">const</span> ctx =
+  NSS_InitContext(<span class="perl_String">"sql:/etc/pki/nssdb"</span>, <span class="perl_String">""</span>, <span class="perl_String">""</span>, <span class="perl_String">""</span>, NULL,
+		    NSS_INIT_READONLY | NSS_INIT_PK11RELOAD);
+<span class="perl_Keyword">if</span> (ctx == NULL) {
+  <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+  fprintf(stderr, <span class="perl_String">"error: NSPR error code %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    err, PR_ErrorToName(err));
+  exit(<span class="perl_Float">1</span>);
+}
+
+<span class="perl_Comment">// Ciphers to enable.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_DataType">static</span> <span class="perl_DataType">const</span> PRUint16 good_ciphers[] = {
+  TLS_RSA_WITH_AES_128_CBC_SHA,
+  TLS_RSA_WITH_AES_256_CBC_SHA,
+  SSL_RSA_WITH_3DES_EDE_CBC_SHA,
+  SSL_NULL_WITH_NULL_NULL <span class="perl_Comment">// sentinel</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>};
+
+<span class="perl_Comment">// Check if the current policy allows any strong ciphers.  If it</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// doesn't, switch to the "domestic" (unrestricted) policy.  This is</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// not thread-safe and has global impact.  Consequently, we only do</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// it if absolutely necessary.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_DataType">int</span> found_good_cipher = 0;
+<span class="perl_Keyword">for</span> (<span class="perl_DataType">const</span> PRUint16 *p = good_ciphers; *p != SSL_NULL_WITH_NULL_NULL;
+     ++p) {
+  PRInt32 policy;
+  <span class="perl_Keyword">if</span> (SSL_CipherPolicyGet(*p, &amp;policy) != SECSuccess) {
+    <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+    fprintf(stderr, <span class="perl_String">"error: policy for cipher %u: error %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	      (<span class="perl_DataType">unsigned</span>)*p, err, PR_ErrorToName(err));
+    exit(<span class="perl_Float">1</span>);
+  }
+  <span class="perl_Keyword">if</span> (policy == SSL_ALLOWED) {
+    fprintf(stderr, <span class="perl_String">"info: found cipher %x</span><span class="perl_Char">\n</span><span class="perl_String">"</span>, (<span class="perl_DataType">unsigned</span>)*p);
+    found_good_cipher = <span class="perl_Float">1</span>;
+    <span class="perl_Keyword">break</span>;
+  }
+}
+<span class="perl_Keyword">if</span> (!found_good_cipher) {
+  <span class="perl_Keyword">if</span> (NSS_SetDomesticPolicy() != SECSuccess) {
+    <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+    fprintf(stderr, <span class="perl_String">"error: NSS_SetDomesticPolicy: error %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	      err, PR_ErrorToName(err));
+    exit(<span class="perl_Float">1</span>);
+  }
+}
+
+<span class="perl_Comment">// Initialize the trusted certificate store.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_DataType">char</span> module_name[] = <span class="perl_String">"library=libnssckbi.so name=</span><span class="perl_Char">\"</span><span class="perl_String">Root Certs</span><span class="perl_Char">\"</span><span class="perl_String">"</span>;
+SECMODModule *module = SECMOD_LoadUserModule(module_name, NULL, PR_FALSE);
+<span class="perl_Keyword">if</span> (module == NULL || !module-&gt;loaded) {
+  <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+  fprintf(stderr, <span class="perl_String">"error: NSPR error code %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    err, PR_ErrorToName(err));
+  exit(<span class="perl_Float">1</span>);
+}
+</pre></div></div><br class="example-break" /><div class="para">
+				Some of the effects of the initialization can be reverted with the following function calls:
+			</div><div class="informalexample" id="ex-Defensive_Coding-TLS-NSS-Close"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+SECMOD_DestroyModule(module);
+NSS_ShutdownContext(ctx);
+</pre></div><div class="para">
+				After NSS has been initialized, the TLS connection can be created (<a class="xref" href="#ex-Defensive_Coding-TLS-Client-NSS-Connect">Example 12.23, “Creating a TLS connection with NSS”</a>). The internal <code class="function">PR_ImportTCPSocket</code> function is used to turn the POSIX file descriptor <code class="literal">sockfd</code> into an NSPR file descriptor. (This function is de-facto part of the NSS public ABI, so it will not go away.) Creating the TLS-capable file descriptor requires a <span class="emphasis"><em>model</em></span> descriptor, which is configured with the desired set of protocols and ciphers. (The <code class="literal">good_ciphers</code> variable is part of <a class="xref" href="#ex-Defensive_Coding-TLS-NSS-Init">Example 12.22, “Initializing the NSS library”</a>.) We cannot resort to disabling ciphers not on a whitelist because by default, the AES cipher suites are disabled. The model descriptor is not needed anymore after TLS suppor
 t has been activated for the existing connection descriptor.
+			</div><div class="para">
+				The call to <code class="function">SSL_BadCertHook</code> can be omitted if no mechanism to override certificate verification is needed. The <code class="literal">bad_certificate</code> function must check both the host name specified for the connection and the certificate before granting the override.
+			</div><div class="para">
+				Triggering the actual handshake requires three function calls, <code class="function">SSL_ResetHandshake</code>, <code class="function">SSL_SetURL</code>, and <code class="function">SSL_ForceHandshake</code>. (If <code class="function">SSL_ResetHandshake</code> is omitted, <code class="function">SSL_ForceHandshake</code> will succeed, but the data will not be encrypted.) During the handshake, the certificate is verified and matched against the host name.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-Client-NSS-Connect"><h6>Example 12.23. Creating a TLS connection with NSS</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Comment">// Wrap the POSIX file descriptor.  This is an internal NSPR</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// function, but it is very unlikely to change.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>PRFileDesc* nspr = PR_ImportTCPSocket(sockfd);
+sockfd = <span class="perl_DecVal">-1</span>; <span class="perl_Comment">// Has been taken over by NSPR.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>
+<span class="perl_Comment">// Add the SSL layer.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>{
+  PRFileDesc *model = PR_NewTCPSocket();
+  PRFileDesc *newfd = SSL_ImportFD(NULL, model);
+  <span class="perl_Keyword">if</span> (newfd == NULL) {
+    <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+    fprintf(stderr, <span class="perl_String">"error: NSPR error code %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	      err, PR_ErrorToName(err));
+    exit(<span class="perl_Float">1</span>);
+  }
+  model = newfd;
+  newfd = NULL;
+  <span class="perl_Keyword">if</span> (SSL_OptionSet(model, SSL_ENABLE_SSL2, PR_FALSE) != SECSuccess) {
+    <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+    fprintf(stderr, <span class="perl_String">"error: set SSL_ENABLE_SSL2 error %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	      err, PR_ErrorToName(err));
+    exit(<span class="perl_Float">1</span>);
+  }
+  <span class="perl_Keyword">if</span> (SSL_OptionSet(model, SSL_V2_COMPATIBLE_HELLO, PR_FALSE) != SECSuccess) {
+    <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+    fprintf(stderr, <span class="perl_String">"error: set SSL_V2_COMPATIBLE_HELLO error %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	      err, PR_ErrorToName(err));
+    exit(<span class="perl_Float">1</span>);
+  }
+  <span class="perl_Keyword">if</span> (SSL_OptionSet(model, SSL_ENABLE_DEFLATE, PR_FALSE) != SECSuccess) {
+    <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+    fprintf(stderr, <span class="perl_String">"error: set SSL_ENABLE_DEFLATE error %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	      err, PR_ErrorToName(err));
+    exit(<span class="perl_Float">1</span>);
+  }
+
+  <span class="perl_Comment">// Disable all ciphers (except RC4-based ciphers, for backwards</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>  <span class="perl_Comment">// compatibility).</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>  <span class="perl_DataType">const</span> PRUint16 *<span class="perl_DataType">const</span> ciphers = SSL_GetImplementedCiphers();
+  <span class="perl_Keyword">for</span> (<span class="perl_DataType">unsigned</span> i = 0; i &lt; SSL_GetNumImplementedCiphers(); i++) {
+    <span class="perl_Keyword">if</span> (ciphers[i] != SSL_RSA_WITH_RC4_128_SHA
+	  &amp;&amp; ciphers[i] != SSL_RSA_WITH_RC4_128_MD5) {
+	<span class="perl_Keyword">if</span> (SSL_CipherPrefSet(model, ciphers[i], PR_FALSE) != SECSuccess) {
+	  <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+	  fprintf(stderr, <span class="perl_String">"error: disable cipher %u: error %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+		  (<span class="perl_DataType">unsigned</span>)ciphers[i], err, PR_ErrorToName(err));
+	  exit(<span class="perl_Float">1</span>);
+	}
+    }
+  }
+
+  <span class="perl_Comment">// Enable the strong ciphers.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>  <span class="perl_Keyword">for</span> (<span class="perl_DataType">const</span> PRUint16 *p = good_ciphers; *p != SSL_NULL_WITH_NULL_NULL;
+	 ++p) {
+    <span class="perl_Keyword">if</span> (SSL_CipherPrefSet(model, *p, PR_TRUE) != SECSuccess) {
+	<span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+	fprintf(stderr, <span class="perl_String">"error: enable cipher %u: error %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+		(<span class="perl_DataType">unsigned</span>)*p, err, PR_ErrorToName(err));
+	exit(<span class="perl_Float">1</span>);
+    }
+  }
+
+  <span class="perl_Comment">// Allow overriding invalid certificate.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>  <span class="perl_Keyword">if</span> (SSL_BadCertHook(model, bad_certificate, (<span class="perl_DataType">char</span> *)host) != SECSuccess) {
+    <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+    fprintf(stderr, <span class="perl_String">"error: SSL_BadCertHook error %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	      err, PR_ErrorToName(err));
+    exit(<span class="perl_Float">1</span>);
+  }
+
+  newfd = SSL_ImportFD(model, nspr);
+  <span class="perl_Keyword">if</span> (newfd == NULL) {
+    <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+    fprintf(stderr, <span class="perl_String">"error: SSL_ImportFD error %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	      err, PR_ErrorToName(err));
+    exit(<span class="perl_Float">1</span>);
+  }
+  nspr = newfd;
+  PR_Close(model);
+}
+
+<span class="perl_Comment">// Perform the handshake.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Keyword">if</span> (SSL_ResetHandshake(nspr, PR_FALSE) != SECSuccess) {
+  <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+  fprintf(stderr, <span class="perl_String">"error: SSL_ResetHandshake error %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    err, PR_ErrorToName(err));
+  exit(<span class="perl_Float">1</span>);
+}
+<span class="perl_Keyword">if</span> (SSL_SetURL(nspr, host) != SECSuccess) {
+  <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+  fprintf(stderr, <span class="perl_String">"error: SSL_SetURL error %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    err, PR_ErrorToName(err));
+  exit(<span class="perl_Float">1</span>);
+}
+<span class="perl_Keyword">if</span> (SSL_ForceHandshake(nspr) != SECSuccess) {
+  <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+  fprintf(stderr, <span class="perl_String">"error: SSL_ForceHandshake error %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    err, PR_ErrorToName(err));
+  exit(<span class="perl_Float">1</span>);
+}
+</pre></div></div><br class="example-break" /><div class="para">
+				After the connection has been established, <a class="xref" href="#ex-Defensive_Coding-TLS-NSS-Use">Example 12.24, “Using NSS for sending and receiving data”</a> shows how to use the NSPR descriptor to communicate with the server.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-NSS-Use"><h6>Example 12.24. Using NSS for sending and receiving data</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_DataType">char</span> buf[4096];
+snprintf(buf, <span class="perl_Keyword">sizeof</span>(buf), <span class="perl_String">"GET / HTTP/1.0</span><span class="perl_Char">\r\n</span><span class="perl_String">Host: %s</span><span class="perl_Char">\r\n\r\n</span><span class="perl_String">"</span>, host);
+PRInt32 ret = PR_Write(nspr, buf, strlen(buf));
+<span class="perl_Keyword">if</span> (ret &lt; 0) {
+  <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+  fprintf(stderr, <span class="perl_String">"error: PR_Write error %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    err, PR_ErrorToName(err));
+  exit(<span class="perl_Float">1</span>);
+}
+ret = PR_Read(nspr, buf, <span class="perl_Keyword">sizeof</span>(buf));
+<span class="perl_Keyword">if</span> (ret &lt; 0) {
+  <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+  fprintf(stderr, <span class="perl_String">"error: PR_Read error %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    err, PR_ErrorToName(err));
+  exit(<span class="perl_Float">1</span>);
+}
+</pre></div></div><br class="example-break" /><div class="para">
+				<a class="xref" href="#ex-Defensive_Coding-TLS-Client-NSS-Close">Example 12.25, “Closing NSS client connections”</a> shows how to close the connection.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-Client-NSS-Close"><h6>Example 12.25. Closing NSS client connections</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Comment">// Send close_notify alert.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Keyword">if</span> (PR_Shutdown(nspr, PR_SHUTDOWN_BOTH) != PR_SUCCESS) {
+  <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+  fprintf(stderr, <span class="perl_String">"error: PR_Read error %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    err, PR_ErrorToName(err));
+  exit(<span class="perl_Float">1</span>);
+}
+<span class="perl_Comment">// Closes the underlying POSIX file descriptor, too.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>PR_Close(nspr);
+</pre></div></div><br class="example-break" /></div><div class="section" id="sect-Defensive_Coding-TLS-Client-Python"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">12.2.5. Implementing TLS Clients With Python</h3></div></div></div><div class="para">
+				The Python distribution provides a TLS implementation in the <code class="literal">ssl</code> module (actually a wrapper around OpenSSL). The exported interface is somewhat restricted, so that the client code shown below does not fully implement the recommendations in <a class="xref" href="#sect-Defensive_Coding-TLS-OpenSSL">Section 12.1.1, “OpenSSL Pitfalls”</a>.
+			</div><div class="important"><div class="admonition_header"><h2>Important</h2></div><div class="admonition"><div class="para">
+					Currently, most Python function which accept <code class="literal">https://</code> URLs or otherwise implement HTTPS support do not perform certificate validation at all. (For example, this is true for the <code class="literal">httplib</code> and <code class="literal">xmlrpclib</code> modules.) If you use HTTPS, you should not use the built-in HTTP clients. The <code class="literal">Curl</code> class in the <code class="literal">curl</code> module, as provided by the <code class="literal">python-pycurl</code> package implements proper certificate validation.
+				</div></div></div><div class="para">
+				The <code class="literal">ssl</code> module currently does not perform host name checking on the server certificate. <a class="xref" href="#ex-Defensive_Coding-TLS-Client-Python-check_host_name">Example 12.26, “Implementing TLS host name checking Python (without wildcard support)”</a> shows how to implement certificate matching, using the parsed certificate returned by <code class="function">getpeercert</code>.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-Client-Python-check_host_name"><h6>Example 12.26. Implementing TLS host name checking Python (without wildcard support)</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Keyword">def</span> check_host_name<span class="perl_Char">(peercert</span>, name<span class="perl_Char">):</span>
+    <span class="perl_Comment">"""Simple certificate/host name checker.  Returns True if the</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">    certificate matches, False otherwise.  Does not support</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">    wildcards."""</span>
+    # Check that the peer has supplied a certificate.
+    # <span class="perl_Others">None</span><span class="perl_Char">/{}</span> <span class="perl_Keyword">is</span> <span class="perl_Keyword">not</span> acceptable.
+    <span class="perl_Keyword">if</span> <span class="perl_Keyword">not</span> peercert<span class="perl_Char">:</span>
+        <span class="perl_Keyword">return</span> <span class="perl_Others">False</span>
+    <span class="perl_Keyword">if</span> peercert.has_key<span class="perl_Char">(</span><span class="perl_String">"subjectAltName"</span><span class="perl_Char">):</span>
+        <span class="perl_Keyword">for</span> typ, val <span class="perl_Keyword">in</span> peercert<span class="perl_Char">[</span><span class="perl_String">"subjectAltName"</span><span class="perl_Char">]:</span>
+            <span class="perl_Keyword">if</span> typ <span class="perl_Char">==</span> <span class="perl_String">"DNS"</span> <span class="perl_Keyword">and</span> val <span class="perl_Char">==</span> name<span class="perl_Char">:</span>
+                <span class="perl_Keyword">return</span> <span class="perl_Others">True</span>
+    <span class="perl_Keyword">else</span><span class="perl_Char">:</span>
+        # Only check the subject DN <span class="perl_Keyword">if</span> there <span class="perl_Keyword">is</span> no subject alternative
+        # name.
+        cn <span class="perl_Char">=</span> <span class="perl_Others">None</span>
+        <span class="perl_Keyword">for</span> attr, val <span class="perl_Keyword">in</span> peercert<span class="perl_Char">[</span><span class="perl_String">"subject"</span><span class="perl_Char">]:</span>
+            # Use most<span class="perl_Char">-specific</span> <span class="perl_Char">(last)</span> commonName attribute.
+            <span class="perl_Keyword">if</span> attr <span class="perl_Char">==</span> <span class="perl_String">"commonName"</span><span class="perl_Char">:</span>
+                cn <span class="perl_Char">=</span> val
+        <span class="perl_Keyword">if</span> cn <span class="perl_Keyword">is</span> <span class="perl_Keyword">not</span> <span class="perl_Others">None</span><span class="perl_Char">:</span>
+            <span class="perl_Keyword">return</span> cn <span class="perl_Char">==</span> name
+    <span class="perl_Keyword">return</span> <span class="perl_Others">False</span>
+</pre></div></div><br class="example-break" /><div class="para">
+				To turn a regular, connected TCP socket into a TLS-enabled socket, use the <code class="function">ssl.wrap_socket</code> function. The function call in <a class="xref" href="#ex-Defensive_Coding-TLS-Client-Python-Connect">Example 12.27, “Establishing a TLS client connection with Python”</a> provides additional arguments to override questionable defaults in OpenSSL and in the Python module.
+			</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+						<code class="literal">ciphers="HIGH:-aNULL:-eNULL:-PSK:RC4-SHA:RC4-MD5"</code> selects relatively strong cipher suites with certificate-based authentication. (The call to <code class="function">check_host_name</code> function provides additional protection against anonymous cipher suites.)
+					</div></li><li class="listitem"><div class="para">
+						<code class="literal">ssl_version=ssl.PROTOCOL_TLSv1</code> disables SSL 2.0 support. By default, the <code class="literal">ssl</code> module sends an SSL 2.0 client hello, which is rejected by some servers. Ideally, we would request OpenSSL to negotiated the most recent TLS version supported by the server and the client, but the Python module does not allow this.
+					</div></li><li class="listitem"><div class="para">
+						<code class="literal">cert_reqs=ssl.CERT_REQUIRED</code> turns on certificate validation.
+					</div></li><li class="listitem"><div class="para">
+						<code class="literal">ca_certs='/etc/ssl/certs/ca-bundle.crt'</code> initializes the certificate store with a set of trusted root CAs. Unfortunately, it is necessary to hard-code this path into applications because the default path in OpenSSL is not available through the Python <code class="literal">ssl</code> module.
+					</div></li></ul></div><div class="para">
+				The <code class="literal">ssl</code> module (and OpenSSL) perform certificate validation, but the certificate must be compared manually against the host name, by calling the <code class="function">check_host_name</code> defined above.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-Client-Python-Connect"><h6>Example 12.27. Establishing a TLS client connection with Python</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+sock <span class="perl_Char">=</span> ssl.wrap_socket<span class="perl_Char">(sock</span>,
+                       ciphers<span class="perl_Char">=</span><span class="perl_String">"HIGH:-aNULL:-eNULL:-PSK:RC4-SHA:RC4-MD5"</span>,
+                       ssl_version<span class="perl_Char">=ssl</span>.PROTOCOL_TLSv1,
+                       cert_reqs<span class="perl_Char">=ssl</span>.CERT_REQUIRED,
+                       ca_certs<span class="perl_Char">=</span><span class="perl_String">'/etc/ssl/certs/ca-bundle.crt'</span><span class="perl_Char">)</span>
+# getpeercert<span class="perl_Char">()</span> triggers the handshake <span class="perl_Char">as</span> a side effect.
+<span class="perl_Keyword">if</span> <span class="perl_Keyword">not</span> check_host_name<span class="perl_Char">(sock</span>.getpeercert<span class="perl_Char">()</span>, host<span class="perl_Char">):</span>
+    <span class="perl_Keyword">raise</span> IOError<span class="perl_Char">(</span><span class="perl_String">"peer certificate does not match host name"</span><span class="perl_Char">)</span>
+</pre></div></div><br class="example-break" /><div class="para">
+				After the connection has been established, the TLS socket can be used like a regular socket:
+			</div><div class="informalexample"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+sock.write<span class="perl_Char">(</span><span class="perl_String">"GET / HTTP/1.1\r\nHost: "</span> <span class="perl_Char">+</span> host <span class="perl_Char">+</span> <span class="perl_String">"\r\n\r\n"</span><span class="perl_Char">)</span>
+<span class="perl_Keyword">print</span> sock.read<span class="perl_Char">()</span>
+</pre></div><div class="para">
+				Closing the TLS socket is straightforward as well:
+			</div><div class="informalexample"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+sock.close<span class="perl_Char">()</span>
+</pre></div></div></div></div></div><div xml:lang="en-US" class="appendix" id="appe-UEFI_Secure_Boot_Guide-Revision_History" lang="en-US"><div class="titlepage"><div><div><h1 class="title">Revision History</h1></div></div></div><div class="para">
+		<div class="revhistory"><table summary="Revision History"><tr><th align="left" valign="top" colspan="3"><strong>Revision History</strong></th></tr><tr><td align="left">Revision 0-1</td><td align="left">Thu Mar 7 2013</td><td align="left"><span class="author"><span class="firstname">Eric</span> <span class="surname">Christensen</span></span></td></tr><tr><td align="left" colspan="3">
+					<table border="0" summary="Simple list" class="simplelist"><tr><td>Initial publication.</td></tr></table>
+
+				</td></tr></table></div>
+
+	</div></div></div></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/css/common.css b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/css/common.css
new file mode 100644
index 0000000..d7dc3f2
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/css/common.css
@@ -0,0 +1,1528 @@
+* {
+	widows: 2 !important;
+	orphans: 2 !important;
+}
+
+body, h1, h2, h3, h4, h5, h6, pre, li, div {
+	line-height: 1.29em;
+}
+
+body {
+	background-color: white;
+	margin:0 auto;
+	font-family: "liberation sans", "Myriad ", "Bitstream Vera Sans", "Lucida Grande", "Luxi Sans", "Trebuchet MS", helvetica, verdana, arial, sans-serif;
+	font-size:12px;
+	max-width:55em;
+	color:black;
+}
+
+body.toc_embeded {
+	/*for web hosting system only*/
+	margin-left: 300px;
+}
+
+object.toc, iframe.toc {
+	/*for web hosting system only*/
+	border-style:none;
+	position:fixed;
+	width:290px;
+	height:99.99%;
+	top:0;
+	left:0;
+	z-index: 100;
+	border-style:none;
+	border-right:1px solid #999;
+}
+
+/* Hide web menu */
+
+body.notoc {
+	margin-left: 3em;
+}
+
+iframe.notoc {
+	border-style:none;
+	border: none;
+	padding: 0em;
+	position:fixed;
+	width: 21px;
+	height: 29px;
+	top: 0px;
+	left:0;
+	overflow: hidden;
+	margin: 0em;
+	margin-left: -3px;
+}
+/* End hide web menu */
+
+/* desktop styles */
+body.desktop {
+	margin-left: 26em;
+}
+
+body.desktop .book > .toc {
+	display:block;
+	width:24em;
+	height:99%;
+	position:fixed;
+	overflow:auto;
+	top:0px;
+	left:0px;
+	padding-left:1em;
+	background-color:#EEEEEE;
+}
+
+.toc {
+	line-height:1.35em;
+}
+
+.toc .glossary,
+.toc .chapter, .toc .appendix {
+	margin-top:1em;
+}
+
+.toc .part {
+	margin-top:1em;
+	display:block;
+}
+
+span.glossary,
+span.appendix {
+	display:block;
+	margin-top:0.5em;
+}
+
+div {
+	padding-top:0px;
+}
+
+div.section {
+	padding-top:1em;
+}
+
+p, div.para, div.formalpara {
+	padding-top:0px;
+	margin-top:0.3em;
+	padding-bottom:0px;
+	margin-bottom:1em;
+}
+
+/*Links*/
+a {
+	outline: none;
+}
+
+a:link {
+	text-decoration:none;
+	border-bottom: 1px dotted ;
+	color:#3366cc;
+}
+
+a:visited {
+	text-decoration:none;
+	border-bottom: 1px dotted ;
+	color:#003366;
+}
+
+div.longdesc-link {
+	float:right;
+	color:#999;
+}
+
+.toc a, .qandaset a {
+	font-weight:normal;
+	border:none;
+}
+
+.toc a:hover, .qandaset a:hover
+{
+	border-bottom: 1px dotted;
+}
+
+/*headings*/
+h1, h2, h3, h4, h5, h6 {
+	color: #336699;
+	margin-top: 0em;
+	margin-bottom: 0em;
+	background-color: transparent;
+	page-break-inside: avoid;
+	page-break-after: avoid;
+}
+
+h1 {
+	font-size:2.0em;
+}
+
+.titlepage h1.title {
+	font-size: 3.0em;
+	padding-top: 1em;
+	text-align:left;
+}
+
+.book > .titlepage h1.title {
+	text-align:center;
+}
+
+.article > .titlepage h1.title {
+	text-align:center;
+}
+
+.set .titlepage > div > div > h1.title {
+	text-align:center;
+}
+
+.producttitle {
+	margin-top: 0em;
+	margin-bottom: 0em;
+	font-size: 3.0em;
+	font-weight: bold;
+	background: #003d6e url(../images/h1-bg.png) top left repeat-x;
+	color: white;
+	text-align: center;
+	padding: 0.7em;
+}
+
+.titlepage .corpauthor {
+	margin-top: 1em;
+	text-align: center;
+}
+
+.section h1.title {
+	font-size: 1.6em;
+	padding: 0em;
+	color: #336699;
+	text-align: left;
+	background: white;
+}
+
+h2 {
+	font-size:1.6em;
+}
+
+
+h2.subtitle, h3.subtitle {
+	margin-top: 1em;
+	margin-bottom: 1em;
+	font-size: 1.4em;
+	text-align: center;
+}
+
+.preface > div > div > div > h2.title {
+	margin-top: 1em;
+	font-size: 2.0em;
+}
+
+.appendix h2 {
+	margin-top: 1em;
+	font-size: 2.0em;
+}
+
+
+
+h3 {
+	font-size:1.3em;
+	padding-top:0em;
+	padding-bottom:0em;
+}
+h4 {
+	font-size:1.1em;
+	padding-top:0em;
+	padding-bottom:0em;
+}
+
+h5 {
+	font-size:1em;
+}
+
+h6 {
+	font-size:1em;
+}
+
+h5.formalpara {
+	font-size:1em;
+	margin-top:2em;
+	margin-bottom:.8em;
+}
+
+.abstract h6 {
+	margin-top:1em;
+	margin-bottom:.5em;
+	font-size:2em;
+}
+
+/*element rules*/
+hr {
+	border-collapse: collapse;
+	border-style:none;
+	border-top: 1px dotted #ccc;
+	width:100%;
+	margin-top: 3em;
+}
+
+/* web site rules */
+ul.languages, .languages li {
+	display:inline;
+	padding:0em;
+}
+
+.languages li a {
+	padding:0em .5em;
+	text-decoration: none;
+}
+
+.languages li p, .languages li div.para {
+	display:inline;
+}
+
+.languages li a:link, .languages li a:visited {
+	color:#444;
+}
+
+.languages li a:hover, .languages li a:focus, .languages li a:active {
+	color:black;
+}
+
+ul.languages {
+	display:block;
+	background-color:#eee;
+	padding:.5em;
+}
+
+/*supporting stylesheets*/
+
+/*unique to the webpage only*/
+.books {
+	position:relative;
+}
+
+.versions li {
+	width:100%;
+	clear:both;
+	display:block;
+}
+
+a.version {
+	font-size:2em;
+	text-decoration:none;
+	width:100%;
+	display:block;
+	padding:1em 0em .2em 0em;
+	clear:both;
+}
+
+a.version:before {
+	content:"Version";
+	font-size:smaller;
+}
+
+a.version:visited, a.version:link {
+	color:#666;
+}
+
+a.version:focus, a.version:hover {
+	color:black;
+}
+
+.books {
+	display:block;
+	position:relative;
+	clear:both;
+	width:100%;
+}
+
+.books li {
+	display:block;
+	width:200px;
+	float:left;
+	position:relative;
+	clear: none ;
+}
+
+.books .html {
+	width:170px;
+	display:block;
+}
+
+.books .pdf {
+	position:absolute;
+	left:170px;
+	top:0px;
+	font-size:smaller;
+}
+
+.books .pdf:link, .books .pdf:visited {
+	color:#555;
+}
+
+.books .pdf:hover, .books .pdf:focus {
+	color:#000;
+}
+
+.books li a {
+	text-decoration:none;
+}
+
+.books li a:hover {
+	color:black;
+}
+
+/*products*/
+.products li {
+	display: block;
+	width:300px;
+	float:left;
+}
+
+.products li a {
+	width:300px;
+	padding:.5em 0em;
+}
+
+.products ul {
+	clear:both;
+}
+
+/*revision history*/
+.revhistory {
+	display:block;
+}
+
+.revhistory table {
+	background-color:transparent;
+	border-color:#fff;
+	padding:0em;
+	margin: 0;
+	border-collapse:collapse;
+	border-style:none;
+}
+
+.revhistory td {
+	text-align :left;
+	padding:0em;
+	border: none;
+	border-top: 1px solid #fff;
+	font-weight: bold;
+}
+
+.revhistory .simplelist td {
+	font-weight: normal;
+}
+
+.revhistory .simplelist {
+	margin-bottom: 1.5em;
+	margin-left: 1em;
+}
+
+.revhistory table th {
+	display: none;
+}
+
+
+/*credits*/
+.authorgroup div {
+	clear:both;
+	text-align: center;
+}
+
+h3.author {
+	margin: 0em;
+	padding: 0em;
+	padding-top: 1em;
+}
+
+.authorgroup h4 {
+	padding: 0em;
+	margin: 0em;
+	padding-top: 1em;
+	margin-top: 1em;
+}
+
+.author, 
+.editor, 
+.translator, 
+.othercredit,
+.contrib {
+	display: block;
+}
+
+.revhistory .author {
+	display: inline;
+}
+
+.othercredit h3 {
+	padding-top: 1em;
+}
+
+
+.othercredit {
+	margin:0em;
+	padding:0em;
+}
+
+.releaseinfo {
+	clear: both;
+}
+
+.copyright {
+	margin-top: 1em;
+}
+
+/* qanda sets */
+.answer {
+	margin-bottom:1em;
+	border-bottom:1px dotted #ccc;
+}
+
+.qandaset .toc {
+	border-bottom:1px dotted #ccc;
+}
+
+.question {
+	font-weight:bold;
+}
+
+.answer .data, .question .data {
+	padding-left: 2.6em;
+}
+
+.answer label, .question label {
+	float:left;
+	font-weight:bold;
+}
+
+/* inline syntax highlighting */
+.perl_Alert {
+	color: #0000ff;
+}
+
+.perl_BaseN {
+	color: #007f00;
+}
+
+.perl_BString {
+	color: #5C3566;
+}
+
+.perl_Char {
+	color: #ff00ff;
+}
+
+.perl_Comment {
+	color: #FF00FF;
+}
+
+
+.perl_DataType {
+	color: #0000ff;
+}
+
+
+.perl_DecVal {
+	color: #00007f;
+}
+
+
+.perl_Error {
+	color: #ff0000;
+}
+
+
+.perl_Float {
+	color: #00007f;
+}
+
+
+.perl_Function {
+	color: #007f00;
+}
+
+
+.perl_IString {
+	color: #5C3566;
+}
+
+
+.perl_Keyword {
+	color: #002F5D;
+}
+
+
+.perl_Operator {
+	color: #ffa500;
+}
+
+
+.perl_Others {
+	color: #b03060;
+}
+
+
+.perl_RegionMarker {
+	color: #96b9ff;
+}
+
+
+.perl_Reserved {
+	color: #9b30ff;
+}
+
+
+.perl_String {
+	color: #5C3566;
+}
+
+
+.perl_Variable {
+	color: #0000ff;
+}
+
+
+.perl_Warning {
+	color: #0000ff;
+}
+
+/*Lists*/
+ul {
+	padding-left:1.6em;
+	list-style-image:url(../images/dot.png);
+	list-style-type: circle;
+}
+
+ul ul {
+	list-style-image:url(../images/dot2.png);
+	list-style-type: circle;
+}
+
+ol {
+	list-style-image:none;
+	list-style-type: decimal;
+}
+
+ol ol {
+	list-style-type: lower-alpha;
+}
+
+ol.arabic {
+	list-style-type: decimal;
+}
+
+ol.loweralpha {
+	list-style-type: lower-alpha;
+}
+
+ol.lowerroman {
+	list-style-type: lower-roman;
+}
+
+ol.upperalpha {
+	list-style-type: upper-alpha;
+}
+
+ol.upperroman {
+	list-style-type: upper-roman;
+}
+
+dt {
+	font-weight:bold;
+	margin-bottom:0em;
+	padding-bottom:0em;
+}
+
+dd {
+	margin:0em;
+	margin-left:2em;
+	padding-top:0em;
+	padding-bottom: 1em;
+}
+
+li {
+	padding-top:0px;
+	margin-top:0em;
+	padding-bottom:0px;
+	margin-bottom:0.4em;
+}
+
+li p, li div.para {
+	padding-top:0px;
+	margin-top:0em;
+	padding-bottom:0px;
+	margin-bottom:0.3em;
+}
+
+/*images*/
+img {
+	display:block;
+	margin: 2em 0;
+}
+
+.inlinemediaobject, .inlinemediaobject img {
+	display:inline;
+	margin:0em;
+}
+
+.figure img {
+	display:block;
+	margin:0;
+	page-break-inside: avoid;
+}
+
+.figure .title {
+	margin:0em;
+	margin-bottom:2em;
+	padding:0px;
+}
+
+/*document modes*/
+.confidential {
+	background-color:#900;
+	color:White;
+	padding:.5em .5em;
+	text-transform:uppercase;
+	text-align:center;
+}
+
+.longdesc-link {
+	display:none;
+}
+
+.longdesc {
+	display:none;
+}
+
+.prompt {
+	padding:0em .3em;
+}
+
+/*user interface styles*/
+.screen .replaceable {
+}
+
+.guibutton, .guilabel {
+	font-family: "liberation mono", "bitstream vera mono", "dejavu mono", monospace;
+	font-weight: bold;
+	white-space: nowrap;
+}
+
+.example {
+	background-color: #ffffff;
+	border-left: 3px solid #aaaaaa;
+	padding-top: 1em;
+	padding-bottom: 0.1em;
+}
+
+.example h6 {
+	padding-left: 10px;
+}
+
+.example-contents {
+	padding-left: 10px;
+	background-color: #ffffff;
+}
+
+.example-contents .para {
+/*	 padding: 10px;*/
+}
+
+/*terminal/console text*/
+.computeroutput, 
+.option {
+	font-family:"liberation mono", "bitstream vera mono", "dejavu mono", monospace;
+	font-weight:bold;
+}
+
+.replaceable {
+	font-family:"liberation mono", "bitstream vera mono", "dejavu mono", monospace;
+	font-style: italic;
+}
+
+.command, .filename, .keycap, .classname, .literal {
+	font-family:"liberation mono", "bitstream vera mono", "dejavu mono", monospace;
+	font-weight:bold;
+}
+
+/* no bold in toc */
+.toc * {
+	font-weight: inherit;
+}
+
+pre {
+	font-family:"liberation mono", "bitstream vera mono", "dejavu mono", monospace;
+	display:block;
+	background-color: #f5f5f5;
+	color: #000000;
+	border: 1px solid #aaaaaa;
+	margin-bottom: 0.3em;
+	padding:.5em 1em;
+	white-space: pre-wrap; /* css-3 */
+	white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */
+	white-space: -pre-wrap; /* Opera 4-6 */
+	white-space: -o-pre-wrap; /* Opera 7 */
+	word-wrap: break-word; /* Internet Explorer 5.5+ */
+	font-size: 0.9em;
+}
+
+pre .replaceable, 
+pre .keycap {
+}
+
+code {
+	font-family:"liberation mono", "bitstream vera mono", "dejavu mono", monospace;
+/*	white-space: nowrap;*/
+	white-space: pre-wrap;
+	word-wrap: break-word;
+	font-weight:bold;
+}
+
+.parameter code {
+	display: inline;
+	white-space: pre-wrap; /* css-3 */
+	white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */
+	white-space: -pre-wrap; /* Opera 4-6 */
+	white-space: -o-pre-wrap; /* Opera 7 */
+	word-wrap: break-word; /* Internet Explorer 5.5+ */
+}
+
+/*Notifications*/
+div.warning:before {
+	content:url(../images/warning.png);
+	padding-left: 5px;
+}
+
+div.note:before {
+	content:url(../images/note.png);
+	padding-left: 5px;
+}
+
+div.important:before {
+	content:url(../images/important.png);
+	padding-left: 5px;
+}
+
+div.warning, div.note, div.important {
+	color: black;
+	margin: 0em;
+	padding: 0em;
+	background: none;
+	background-color: white;
+	margin-bottom: 1em;
+	border-bottom: 1px solid #aaaaaa;
+	page-break-inside: avoid;
+}
+
+div.warning h2, div.note h2,div.important h2 {
+	margin: 0em;
+	padding: 0em;
+	color: #eeeeec;
+	padding-top: 0px;
+	padding-bottom: 0px;
+	height: 1.4em;
+	line-height: 1.4em;
+	font-size: 1.4em;
+	display:inline;
+}
+
+div.admonition_header {
+	clear: both;
+	margin: 0em;
+	padding: 0em;
+	margin-top: -3.3em;
+	padding-left: 58px;
+	line-height: 1.0em;
+	font-size: 1.0em;
+}
+
+div.warning div.admonition_header {
+	background: url(../images/red.png) top left repeat-x;
+	background-color: #590000;
+}
+
+div.note div.admonition_header {
+	background: url(../images/green.png) top right repeat-x;
+	background-color: #597800;
+}
+
+div.important div.admonition_header {
+	background: url(../images/yellow.png) top right repeat-x;
+	background-color: #a6710f;
+}
+
+div.warning p, div.warning div.para,
+div.note p, div.note div.para,
+div.important p, div.important div.para {
+	padding: 0em;
+	margin: 0em;
+}
+
+div.admonition {
+	border: none;
+	border-left: 1px solid #aaaaaa;
+	border-right: 1px solid #aaaaaa;
+	padding:0em;
+	margin:0em;
+	padding-top: 1.5em;
+	padding-bottom: 1em;
+	padding-left: 2em;
+	padding-right: 1em;
+	background-color: #eeeeec;
+	-moz-border-radius: 0px;
+	-webkit-border-radius: 0px;
+	border-radius: 0px;
+}
+
+/*Page Title*/
+#title  {
+	display:block;
+	height:45px;
+	padding-bottom:1em;
+	margin:0em;
+}
+
+#title a.left{
+	display:inline;
+	border:none;
+}
+
+#title a.left img{
+	border:none;
+	float:left;
+	margin:0em;
+	margin-top:.7em;
+}
+
+#title a.right {
+	padding-bottom:1em;
+}
+
+#title a.right img {
+	border:none;
+	float:right;
+	margin:0em;
+	margin-top:.7em;
+}
+
+/*Table*/
+div.table {
+	page-break-inside: avoid;
+}
+
+table {
+	border:1px solid #6c614b;
+	width:100%;
+	border-collapse:collapse;
+}
+
+table.simplelist, .calloutlist table {
+	border-style: none;
+}
+
+table th {
+	text-align:left;
+	background-color:#6699cc;
+	padding:.3em .5em;
+	color:white;
+}
+
+table td {
+	padding:.15em .5em;
+}
+
+table tr.even td {
+	background-color:#f5f5f5;
+}
+
+table th p:first-child, table td p:first-child, table  li p:first-child,
+table th div.para:first-child, table td div.para:first-child, table  li div.para:first-child {
+	margin-top:0em;
+	padding-top:0em;
+	display:inline;
+}
+
+th, td {
+	border-style:none;
+	vertical-align: top;
+	border: 1px solid #000;
+}
+
+.simplelist th, .simplelist td {
+	border: none;
+}
+
+table table td {
+	border-bottom:1px dotted #aaa;
+	background-color:white;
+	padding:.6em 0em;
+}
+
+table table {
+	border:1px solid white;
+}
+
+td.remarkval {
+	color:#444;
+}
+
+td.fieldval {
+	font-weight:bold;
+}
+
+.lbname, .lbtype, .lbdescr, .lbdriver, .lbhost {
+	color:white;
+	font-weight:bold;
+	background-color:#999;
+	width:120px;
+}
+
+td.remarkval {
+	width:230px;
+}
+
+td.tname {
+	font-weight:bold;
+}
+
+th.dbfield {
+	width:120px;
+}
+
+th.dbtype {
+	width:70px;
+}
+
+th.dbdefault {
+	width:70px;
+}
+
+th.dbnul {
+	width:70px;
+}
+
+th.dbkey {
+	width:70px;
+}
+
+span.book {
+	margin-top:4em;
+	display:block;
+	font-size:11pt;
+}
+
+span.book a{
+	font-weight:bold;
+}
+span.chapter {
+	display:block;
+	margin-top:0.5em;
+}
+
+table.simplelist td, .calloutlist table td {
+	border-style: none;
+}
+
+/*Breadcrumbs*/
+#breadcrumbs ul li.first:before {
+	content:" ";
+}
+
+#breadcrumbs {
+	color:#900;
+	padding:3px;
+	margin-bottom:25px;
+}
+
+#breadcrumbs ul {
+	margin-left:0;
+	padding-left:0;
+	display:inline;
+	border:none;
+}
+
+#breadcrumbs ul li {
+	margin-left:0;
+	padding-left:2px;
+	border:none;
+	list-style:none;
+	display:inline;
+}
+
+#breadcrumbs ul li:before {
+	content:"\0020 \0020 \0020 \00BB \0020";
+	color:#333;
+}
+
+/*index*/
+.glossary h3, 
+.index h3 {
+	font-size: 2em;
+	color:#aaa;
+	margin:0em;
+}
+
+.indexdiv {
+	margin-bottom:1em;
+}
+
+.glossary dt,
+.index dt {
+	color:#444;
+	padding-top:.5em;
+}
+
+.glossary dl dl dt, 
+.index dl dl dt {
+	color:#777;
+	font-weight:normal;
+	padding-top:0em;
+}
+
+.index dl dl dt:before {
+	content:"- ";
+	color:#ccc;
+}
+
+/*changes*/
+.footnote {
+	font-size: .7em;
+	margin:0em;
+	color:#222;
+}
+
+table .footnote {
+}
+
+sup {
+	color:#999;
+	margin:0em;
+	padding:0em;
+	line-height: .4em;
+	font-size: 1em;
+	padding-left:0em;
+}
+
+.footnote {
+	position:relative;
+}
+
+.footnote sup  {
+	color:#e3dcc0;
+	position:absolute;
+	left: .4em;
+}
+
+.footnote sup a:link, 
+.footnote sup a:visited {
+	color:#92917d;
+	text-decoration:none;
+}
+
+.footnote:hover sup a {
+	text-decoration:none;
+}
+
+.footnote p,.footnote div.para {
+	padding-left:2em;
+}
+
+.footnote a:link, 
+.footnote a:visited {
+	color:#00537c;
+}
+
+.footnote a:hover {
+}
+
+/**/
+div.chapter {
+	margin-top:3em;
+	page-break-inside: avoid;
+}
+
+div.preface {
+	page-break-inside: avoid;
+}
+
+div.section {
+	margin-top:1em;
+	page-break-inside: auto;
+}
+
+div.note .replaceable, 
+div.important .replaceable, 
+div.warning .replaceable, 
+div.note .keycap, 
+div.important .keycap, 
+div.warning .keycap
+{
+}
+
+ul li p:last-child, ul li div.para:last-child {
+	margin-bottom:0em;
+	padding-bottom:0em;
+}
+
+/*document navigation*/
+.docnav a, .docnav strong {
+	border:none;
+	text-decoration:none;
+	font-weight:normal;
+}
+
+.docnav {
+	list-style:none;
+	margin:0em;
+	padding:0em;
+	position:relative;
+	width:100%;
+	padding-bottom:2em;
+	padding-top:1em;
+	border-top:1px dotted #ccc;
+}
+
+.docnav li {
+	list-style:none;
+	margin:0em;
+	padding:0em;
+	display:inline;
+	font-size:.8em;
+}
+
+.docnav li:before {
+	content:" ";
+}
+
+.docnav li.previous, .docnav li.next {
+	position:absolute;
+	top:1em;
+}
+
+.docnav li.up, .docnav li.home {
+	margin:0em 1.5em;
+}
+
+.docnav li.previous {
+	left:0px;
+	text-align:left;
+}
+
+.docnav li.next {
+	right:0px;
+	text-align:right;
+}
+
+.docnav li.previous strong, .docnav li.next strong {
+	height:22px;
+	display:block;
+}
+
+.docnav {
+	margin:0 auto;
+	text-align:center;
+}
+
+.docnav li.next a strong {
+	background:  url(../images/stock-go-forward.png) top right no-repeat;
+	padding-top:3px;
+	padding-bottom:4px;
+	padding-right:28px;
+	font-size:1.2em;
+}
+
+.docnav li.previous a strong {
+	background: url(../images/stock-go-back.png) top left no-repeat;
+	padding-top:3px;
+	padding-bottom:4px;
+	padding-left:28px;
+	padding-right:0.5em;
+	font-size:1.2em;
+}
+
+.docnav li.home a strong {
+	background: url(../images/stock-home.png) top left no-repeat;
+	padding:5px;
+	padding-left:28px;
+	font-size:1.2em;
+}
+
+.docnav li.up a strong {
+	background: url(../images/stock-go-up.png) top left no-repeat;
+	padding:5px;
+	padding-left:28px;
+	font-size:1.2em;
+}
+
+.docnav a:link, .docnav a:visited {
+	color:#666;
+}
+
+.docnav a:hover, .docnav a:focus, .docnav a:active {
+	color:black;
+}
+
+.docnav a {
+	max-width: 10em;
+	overflow:hidden;
+}
+
+.docnav a:link strong {
+	text-decoration:none;
+}
+
+.docnav {
+	margin:0 auto;
+	text-align:center;
+}
+
+ul.docnav {
+	margin-bottom: 1em;
+}
+/* Reports */
+.reports ul {
+	list-style:none;
+	margin:0em;
+	padding:0em;
+}
+
+.reports li{
+	margin:0em;
+	padding:0em;
+}
+
+.reports li.odd {
+	background-color: #eeeeee;
+	margin:0em;
+	padding:0em;
+}
+
+.reports dl {
+	display:inline;
+	margin:0em;
+	padding:0em;
+	float:right;
+	margin-right: 17em;
+	margin-top:-1.3em;
+}
+
+.reports dt {
+	display:inline;
+	margin:0em;
+	padding:0em;
+}
+
+.reports dd {
+	display:inline;
+	margin:0em;
+	padding:0em;
+	padding-right:.5em;
+}
+
+.reports h2, .reports h3{
+	display:inline;
+	padding-right:.5em;
+	font-size:10pt;
+	font-weight:normal;
+}
+
+.reports div.progress {
+	display:inline;
+	float:right;
+	width:16em;
+	background:#c00 url(../images/shine.png) top left repeat-x;
+	margin:0em;
+	margin-top:-1.3em;
+	padding:0em;
+	border:none;
+}
+
+/*uniform*/
+body.results, body.reports {
+	max-width:57em ;
+	padding:0em;
+}
+
+/*Progress Bar*/
+div.progress {
+	display:block;
+	float:left;
+	width:16em;
+	background:#c00 url(../images/shine.png) top left repeat-x;
+	height:1em;
+}
+
+div.progress span {
+	height:1em;
+	float:left;
+}
+
+div.progress span.translated {
+	background:#6c3 url(../images/shine.png) top left repeat-x;
+}
+
+div.progress span.fuzzy {
+	background:#ff9f00 url(../images/shine.png) top left repeat-x;
+}
+
+
+/*Results*/
+
+.results ul {
+	list-style:none;
+	margin:0em;
+	padding:0em;
+}
+
+.results li{
+	margin:0em;
+	padding:0em;
+}
+
+.results li.odd {
+	background-color: #eeeeee;
+	margin:0em;
+	padding:0em;
+}
+
+.results dl {
+	display:inline;
+	margin:0em;
+	padding:0em;
+	float:right;
+	margin-right: 17em;
+	margin-top:-1.3em;
+}
+
+.results dt {
+	display:inline;
+	margin:0em;
+	padding:0em;
+}
+
+.results dd {
+	display:inline;
+	margin:0em;
+	padding:0em;
+	padding-right:.5em;
+}
+
+.results h2, .results h3 {
+	display:inline;
+	padding-right:.5em;
+	font-size:10pt;
+	font-weight:normal;
+}
+
+.results div.progress {
+	display:inline;
+	float:right;
+	width:16em;
+	background:#c00 url(../images/shine.png) top left repeat-x;
+	margin:0em;
+	margin-top:-1.3em;
+	padding:0em;
+	border:none;
+}
+
+/* Dirty EVIL Mozilla hack for round corners */
+pre {
+	-moz-border-radius:11px;
+	-webkit-border-radius:11px;
+	border-radius: 11px;
+	page-break-inside: avoid;
+}
+
+.example {
+	-moz-border-radius:0px;
+	-webkit-border-radius:0px;
+	border-radius: 0px;
+	page-break-inside: avoid;
+}
+
+.package, .citetitle {
+	font-style: italic;
+}
+
+.titlepage .edition {
+	color: #336699;
+	background-color: transparent;
+	margin-top: 1em;
+	margin-bottom: 1em;
+	font-size: 1.4em;
+	font-weight: bold;
+	text-align: center;
+}
+
+span.remark {
+	background-color: #ff00ff;
+}
+
+.draft {
+	background-image: url(../images/watermark-draft.png);
+	background-repeat: repeat-y;
+        background-position: center;
+}
+
+.foreignphrase {
+	font-style: inherit;
+}
+
+dt {
+	clear:both;
+}
+
+dt img {
+	border-style: none;
+	max-width: 112px;
+}
+
+dt object {
+	max-width: 112px;
+}
+
+dt .inlinemediaobject, dt object {
+	display: inline;
+	float: left;
+	margin-bottom: 1em;
+	padding-right: 1em;
+	width: 112px;
+}
+
+dl:after {
+	display: block;
+	clear: both;
+	content: "";
+}
+
+.toc dd {
+	padding-bottom: 0em;
+	margin-bottom: 1em;
+	padding-left: 1.3em;
+	margin-left: 0em;
+}
+
+div.toc > dl > dt {
+	padding-bottom: 0em;
+	margin-bottom: 0em;
+	margin-top: 1em;
+}
+
+
+.strikethrough {
+	text-decoration: line-through;
+}
+
+.underline {
+	text-decoration: underline;
+}
+
+.calloutlist img, .callout {
+	padding: 0em;
+	margin: 0em;
+	width: 12pt;
+	display: inline;
+	vertical-align: middle;
+}
+
+.stepalternatives {
+	list-style-image: none;
+	list-style-type: none;
+}
+
+
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/css/default.css b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/css/default.css
new file mode 100644
index 0000000..bf38ebb
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/css/default.css
@@ -0,0 +1,3 @@
+ at import url("common.css");
+ at import url("overrides.css");
+ at import url("lang.css");
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/css/lang.css b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/css/lang.css
new file mode 100644
index 0000000..81c3115
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/css/lang.css
@@ -0,0 +1,2 @@
+/* place holder */
+
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/css/overrides.css b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/css/overrides.css
new file mode 100644
index 0000000..057be29
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/css/overrides.css
@@ -0,0 +1,51 @@
+a:link {
+	color:#0066cc;
+}
+
+a:hover, a:active {
+	color:#003366;
+}
+
+a:visited {
+	color:#6699cc;
+}
+
+
+h1 {
+	color:#3c6eb4
+}
+
+.producttitle {
+	background: #3c6eb4 url(../images/h1-bg.png) top left repeat;
+}
+
+.section h1.title {
+	color:#3c6eb4;
+}
+
+
+h2,h3,h4,h5,h6 {
+	color:#3c6eb4;
+}
+
+table {
+	border:1px solid #3c6eb4;
+}
+
+table th {
+	background-color:#3c6eb4;
+}
+
+
+table tr.even td {
+	background-color:#f5f5f5;
+}
+
+.revhistory table th {
+	color:#3c6eb4;
+}
+
+.titlepage .edition {
+	color: #3c6eb4;
+}
+
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/css/print.css b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/css/print.css
new file mode 100644
index 0000000..773d8ae
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/css/print.css
@@ -0,0 +1,16 @@
+ at import url("common.css");
+ at import url("overrides.css");
+ at import url("lang.css");
+
+#tocframe {
+	display: none;
+}
+
+body.toc_embeded {
+	margin-left: 30px;
+}
+
+.producttitle {
+	color: #336699;
+}
+
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/1.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/1.png
new file mode 100644
index 0000000..c21d7a3
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/1.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/1.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/1.svg
new file mode 100644
index 0000000..a2b3903
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/1.svg
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 17.853468,22.008438 -2.564941,0 0,-7.022461 c -5e-6,-0.143873 -5e-6,-0.315422 0,-0.514648 0.0055,-0.204745 0.01106,-0.415031 0.0166,-0.63086 0.01106,-0.221345 0.01936,-0.442699 0.0249,-0.664062 0.01106,-0.221345 0.01936,-0.423331 0.0249,-0.605957 -0.02767,0.03321 -0.07471,0.08302 -0.141113,0.149414 -0.06641,0.06642 -0.141118,0.141122 -0.224122,0.224121 -0.08301,0.07748 -0.168786,0.157724 -0.257324,0.240723 -0.08854,0.08302 -0.17432,0.157723 -0.257324,0.224121 l -1.394531,1.120605 -1.245117,-1.543945 3.909668,-3.1127931 2.108398,0 0,12.1357421"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/10.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/10.png
new file mode 100644
index 0000000..15b81da
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/10.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/10.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/10.svg
new file mode 100644
index 0000000..af015ab
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/10.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 13.215925,22.008438 -2.564941,0 0,-7.022461 c -4e-6,-0.143873 -4e-6,-0.315422 0,-0.514648 0.0055,-0.204745 0.01106,-0.415031 0.0166,-0.63086 0.01106,-0.221345 0.01936,-0.442699 0.0249,-0.664062 0.01106,-0.221345 0.01936,-0.423331 0.0249,-0.605957 -0.02767,0.03321 -0.07471,0.08302 -0.141113,0.149414 -0.06641,0.06642 -0.141118,0.141122 -0.224121,0.224121 -0.08301,0.07748 -0.168787,0.157724 -0.257325,0.240723 -0.08854,0.08302 -0.1743194,0.157723 -0.2573238,0.224121 L 8.442976,14.529434 7.1978588,12.985489 11.107527,9.8726959 l 2.108398,0 0,12.1357421"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 24.6378,15.940567 c -9e-6,0.979497 -0.07748,1.853845 -0.232422,2.623047 -0.149422,0.769208 -0.392912,1.422202 -0.730468,1.958984 -0.332039,0.536785 -0.763679,0.94629 -1.294922,1.228516 -0.525722,0.282226 -1.162115,0.42334 -1.90918,0.42334 -0.702803,0 -1.314294,-0.141114 -1.834473,-0.42334 -0.520184,-0.282226 -0.951824,-0.691731 -1.294922,-1.228516 -0.3431,-0.536782 -0.600424,-1.189776 -0.771972,-1.958984 -0.166016,-0.769202 -0.249024,-1.64355 -0.249024,-2.623047 0,-0.979485 0.07471,-1.8566 0.224121,-2.631348 0.154948,-0.77473 0.398437,-1.430491 0.730469,-1.967285 0.33203,-0.536772 0.760903,-0.946277 1.286621,-1.228515 0.525713,-0.2877487 1.162106,-0.4316287 1.90918,-0.431641 0.69726,1.23e-5 1.305984,0.1411254 1.826172,0.42334 0.520175,0.282238 0.954582,0.691743 1.303223,1.228515 0.348624,0.536794 0.608715,1.192555 0.780273,1.967286 0.171541,0.774747 0.257315,1.654629 0.257324,2.639648 m -5.760742,0 c -3e-6,1.383468 0.118975,2.423832 0.356934,3.121094 0.237952,0.6
 97268 0.650223,1.0459 1.236816,1.045898 0.575516,2e-6 0.987787,-0.345863 1.236816,-1.037597 0.254552,-0.691729 0.38183,-1.734859 0.381836,-3.129395 -6e-6,-1.38899 -0.127284,-2.43212 -0.381836,-3.129395 -0.249029,-0.702789 -0.6613,-1.054188 -1.236816,-1.054199 -0.293299,1.1e-5 -0.542322,0.08855 -0.74707,0.265625 -0.199223,0.177093 -0.362471,0.439951 -0.489746,0.788574 -0.127282,0.348642 -0.218591,0.785816 -0.273926,1.311524 -0.05534,0.52019 -0.08301,1.126146 -0.08301,1.817871"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/11.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/11.png
new file mode 100644
index 0000000..2fcc2dd
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/11.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/11.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/11.svg
new file mode 100644
index 0000000..cb82b70
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/11.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 13.215925,22.008438 -2.564941,0 0,-7.022461 c -4e-6,-0.143873 -4e-6,-0.315422 0,-0.514648 0.0055,-0.204745 0.01106,-0.415031 0.0166,-0.63086 0.01106,-0.221345 0.01936,-0.442699 0.0249,-0.664062 0.01106,-0.221345 0.01936,-0.423331 0.0249,-0.605957 -0.02767,0.03321 -0.07471,0.08302 -0.141113,0.149414 -0.06641,0.06642 -0.141118,0.141122 -0.224121,0.224121 -0.08301,0.07748 -0.168787,0.157724 -0.257325,0.240723 -0.08854,0.08302 -0.1743194,0.157723 -0.2573238,0.224121 L 8.442976,14.529434 7.1978588,12.985489 11.107527,9.8726959 l 2.108398,0 0,12.1357421"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 22.579206,22.008438 -2.564941,0 0,-7.022461 c -4e-6,-0.143873 -4e-6,-0.315422 0,-0.514648 0.0055,-0.204745 0.01106,-0.415031 0.0166,-0.63086 0.01106,-0.221345 0.01936,-0.442699 0.0249,-0.664062 0.01106,-0.221345 0.01936,-0.423331 0.0249,-0.605957 -0.02767,0.03321 -0.07471,0.08302 -0.141113,0.149414 -0.06641,0.06642 -0.141117,0.141122 -0.224121,0.224121 -0.08301,0.07748 -0.168786,0.157724 -0.257324,0.240723 -0.08855,0.08302 -0.17432,0.157723 -0.257325,0.224121 l -1.394531,1.120605 -1.245117,-1.543945 3.909668,-3.1127931 2.108398,0 0,12.1357421"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/12.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/12.png
new file mode 100644
index 0000000..edebe20
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/12.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/12.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/12.svg
new file mode 100644
index 0000000..3b6d822
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/12.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 13.215925,22.008438 -2.564941,0 0,-7.022461 c -4e-6,-0.143873 -4e-6,-0.315422 0,-0.514648 0.0055,-0.204745 0.01106,-0.415031 0.0166,-0.63086 0.01106,-0.221345 0.01936,-0.442699 0.0249,-0.664062 0.01106,-0.221345 0.01936,-0.423331 0.0249,-0.605957 -0.02767,0.03321 -0.07471,0.08302 -0.141113,0.149414 -0.06641,0.06642 -0.141118,0.141122 -0.224121,0.224121 -0.08301,0.07748 -0.168787,0.157724 -0.257325,0.240723 -0.08854,0.08302 -0.1743194,0.157723 -0.2573238,0.224121 L 8.442976,14.529434 7.1978588,12.985489 11.107527,9.8726959 l 2.108398,0 0,12.1357421"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 24.621199,22.008438 -8.143067,0 0,-1.784668 2.855469,-3.07959 c 0.359697,-0.387364 0.686194,-0.744297 0.979492,-1.0708 0.29329,-0.326492 0.54508,-0.644688 0.755371,-0.95459 0.210281,-0.309889 0.37353,-0.625318 0.489746,-0.946289 0.116205,-0.320956 0.174311,-0.666821 0.174317,-1.037598 -6e-6,-0.409496 -0.124518,-0.727692 -0.373535,-0.95459 -0.243495,-0.226878 -0.572759,-0.340322 -0.987793,-0.340332 -0.437179,10e-6 -0.857751,0.10792 -1.261719,0.323731 -0.403974,0.215829 -0.827314,0.522958 -1.27002,0.921386 l -1.394531,-1.651855 c 0.249023,-0.226877 0.509114,-0.442698 0.780274,-0.647461 0.271157,-0.210275 0.569985,-0.395659 0.896484,-0.556152 0.326495,-0.16047 0.686195,-0.2877488 1.079101,-0.3818364 0.3929,-0.099597 0.832841,-0.1494018 1.319825,-0.1494141 0.581049,1.23e-5 1.101231,0.080253 1.560547,0.2407227 0.464837,0.1604938 0.860507,0.3901488 1.187011,0.6889648 0.32649,0.293305 0.575513,0.650239 0.747071,1.070801 0.177075,0.420583 0.265616,0.893727 0.265625,1.419
 433 -9e-6,0.47592 -0.08302,0.932463 -0.249024,1.369629 -0.166024,0.431648 -0.392911,0.857754 -0.680664,1.278321 -0.287768,0.415044 -0.622565,0.830083 -1.004394,1.245117 -0.376309,0.40951 -0.78028,0.827315 -1.211914,1.253418 l -1.460938,1.469238 0,0.116211 4.947266,0 0,2.158203"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/13.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/13.png
new file mode 100644
index 0000000..ec48cef
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/13.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/13.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/13.svg
new file mode 100644
index 0000000..226e461
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/13.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 13.215925,22.008438 -2.564941,0 0,-7.022461 c -4e-6,-0.143873 -4e-6,-0.315422 0,-0.514648 0.0055,-0.204745 0.01106,-0.415031 0.0166,-0.63086 0.01106,-0.221345 0.01936,-0.442699 0.0249,-0.664062 0.01106,-0.221345 0.01936,-0.423331 0.0249,-0.605957 -0.02767,0.03321 -0.07471,0.08302 -0.141113,0.149414 -0.06641,0.06642 -0.141118,0.141122 -0.224121,0.224121 -0.08301,0.07748 -0.168787,0.157724 -0.257325,0.240723 -0.08854,0.08302 -0.1743194,0.157723 -0.2573238,0.224121 L 8.442976,14.529434 7.1978588,12.985489 11.107527,9.8726959 l 2.108398,0 0,12.1357421"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 24.148054,12.587051 c -8e-6,0.420582 -0.06918,0.799651 -0.207519,1.137207 -0.132821,0.33204 -0.318205,0.625334 -0.556153,0.879883 -0.232429,0.249031 -0.509121,0.459317 -0.830078,0.63086 -0.315436,0.166022 -0.658535,0.2933 -1.029297,0.381836 l 0,0.0498 c 0.979486,0.121751 1.721021,0.420579 2.22461,0.896485 0.503572,0.470382 0.755362,1.106775 0.755371,1.909179 -9e-6,0.531253 -0.09685,1.023766 -0.290528,1.477539 -0.188159,0.448244 -0.481453,0.83838 -0.879882,1.170411 -0.392911,0.332031 -0.890958,0.592122 -1.494141,0.780273 -0.597662,0.182617 -1.303227,0.273926 -2.116699,0.273926 -0.652998,0 -1.267256,-0.05534 -1.842774,-0.166016 -0.575522,-0.105143 -1.112305,-0.268392 -1.610351,-0.489746 l 0,-2.183105 c 0.249022,0.132815 0.51188,0.249025 0.788574,0.348632 0.276691,0.09961 0.553384,0.185387 0.830078,0.257325 0.27669,0.06641 0.547849,0.116212 0.813477,0.149414 0.271155,0.0332 0.525712,0.04981 0.763671,0.0498 0.475908,2e-6 0.871578,-0.04427 1.187012,-0.132812 0.315425,
 -0.08854 0.567215,-0.213051 0.755371,-0.373535 0.188146,-0.16048 0.320958,-0.351397 0.398438,-0.572754 0.083,-0.226885 0.124505,-0.473141 0.124512,-0.73877 -7e-6,-0.249019 -0.05258,-0.47314 -0.157715,-0.672363 -0.09962,-0.20474 -0.265631,-0.376289 -0.498047,-0.51464 -0.226893,-0.143876 -0.525721,-0.254553 -0.896485,-0.332032 -0.370772,-0.07747 -0.827315,-0.116205 -1.369628,-0.116211 l -0.863282,0 0,-1.801269 0.84668,0 c 0.509111,7e-6 0.93245,-0.04426 1.270019,-0.132813 0.337561,-0.09407 0.605952,-0.218579 0.805176,-0.373535 0.204747,-0.160474 0.348627,-0.345858 0.431641,-0.556152 0.083,-0.210278 0.124506,-0.434399 0.124512,-0.672363 -6e-6,-0.431632 -0.135585,-0.769197 -0.406739,-1.012696 -0.26563,-0.243479 -0.688969,-0.365224 -1.270019,-0.365234 -0.265629,1e-5 -0.514652,0.02768 -0.747071,0.08301 -0.226891,0.04981 -0.439944,0.116221 -0.63916,0.199218 -0.193687,0.07748 -0.373537,0.166026 -0.53955,0.265625 -0.160484,0.09409 -0.307131,0.188161 -0.439942,0.282227 l -1.294922,-1.7
 09961 c 0.232421,-0.171538 0.484212,-0.329253 0.755371,-0.473145 0.276692,-0.143868 0.575519,-0.26838 0.896485,-0.373535 0.320961,-0.1106647 0.666826,-0.1964393 1.037597,-0.2573239 0.370765,-0.06086 0.766435,-0.091296 1.187012,-0.091309 0.597651,1.23e-5 1.139969,0.066419 1.626953,0.1992188 0.492507,0.1272911 0.913079,0.3154421 1.261719,0.5644531 0.348625,0.243501 0.617017,0.545096 0.805176,0.904786 0.193676,0.354177 0.290519,0.760914 0.290527,1.220214"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/14.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/14.png
new file mode 100644
index 0000000..33d5637
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/14.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/14.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/14.svg
new file mode 100644
index 0000000..5aaa3a3
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/14.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 13.215925,22.008438 -2.564941,0 0,-7.022461 c -4e-6,-0.143873 -4e-6,-0.315422 0,-0.514648 0.0055,-0.204745 0.01106,-0.415031 0.0166,-0.63086 0.01106,-0.221345 0.01936,-0.442699 0.0249,-0.664062 0.01106,-0.221345 0.01936,-0.423331 0.0249,-0.605957 -0.02767,0.03321 -0.07471,0.08302 -0.141113,0.149414 -0.06641,0.06642 -0.141118,0.141122 -0.224121,0.224121 -0.08301,0.07748 -0.168787,0.157724 -0.257325,0.240723 -0.08854,0.08302 -0.1743194,0.157723 -0.2573238,0.224121 L 8.442976,14.529434 7.1978588,12.985489 11.107527,9.8726959 l 2.108398,0 0,12.1357421"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 24.803816,19.493301 -1.460938,0 0,2.515137 -2.498535,0 0,-2.515137 -5.013672,0 0,-1.784668 5.154785,-7.8359371 2.357422,0 0,7.6284181 1.460938,0 0,1.992187 m -3.959473,-1.992187 0,-2.058594 c -5e-6,-0.07193 -5e-6,-0.17431 0,-0.307129 0.0055,-0.138339 0.01106,-0.293287 0.0166,-0.464844 0.0055,-0.171541 0.01106,-0.348625 0.0166,-0.53125 0.01106,-0.182609 0.01936,-0.356925 0.0249,-0.522949 0.01106,-0.166007 0.01936,-0.309887 0.0249,-0.43164 0.01106,-0.12727 0.01936,-0.218579 0.0249,-0.273926 l -0.07471,0 c -0.09961,0.232431 -0.213058,0.478687 -0.340332,0.738769 -0.121749,0.2601 -0.262862,0.520191 -0.42334,0.780274 l -2.02539,3.071289 2.755859,0"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/15.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/15.png
new file mode 100644
index 0000000..f1a4eb2
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/15.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/15.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/15.svg
new file mode 100644
index 0000000..f51dd96
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/15.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 13.215925,22.008438 -2.564941,0 0,-7.022461 c -4e-6,-0.143873 -4e-6,-0.315422 0,-0.514648 0.0055,-0.204745 0.01106,-0.415031 0.0166,-0.63086 0.01106,-0.221345 0.01936,-0.442699 0.0249,-0.664062 0.01106,-0.221345 0.01936,-0.423331 0.0249,-0.605957 -0.02767,0.03321 -0.07471,0.08302 -0.141113,0.149414 -0.06641,0.06642 -0.141118,0.141122 -0.224121,0.224121 -0.08301,0.07748 -0.168787,0.157724 -0.257325,0.240723 -0.08854,0.08302 -0.1743194,0.157723 -0.2573238,0.224121 L 8.442976,14.529434 7.1978588,12.985489 11.107527,9.8726959 l 2.108398,0 0,12.1357421"
+       id="path2839"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 20.761335,14.255508 c 0.520177,8e-6 1.004389,0.08025 1.452637,0.240723 0.448235,0.160489 0.838372,0.395678 1.17041,0.705566 0.332024,0.309903 0.592114,0.697272 0.780274,1.16211 0.188142,0.459315 0.282218,0.987797 0.282226,1.585449 -8e-6,0.658532 -0.102385,1.250654 -0.307129,1.776367 -0.20476,0.520184 -0.506355,0.962892 -0.904785,1.328125 -0.398444,0.359701 -0.893724,0.636394 -1.48584,0.830078 -0.586594,0.193685 -1.261723,0.290528 -2.02539,0.290528 -0.304366,0 -0.605961,-0.01384 -0.904785,-0.0415 -0.298831,-0.02767 -0.586591,-0.06917 -0.863282,-0.124512 -0.27116,-0.04981 -0.531251,-0.116211 -0.780273,-0.199219 -0.243491,-0.08301 -0.464845,-0.17985 -0.664063,-0.290527 l 0,-2.216309 c 0.193684,0.11068 0.417805,0.215823 0.672364,0.31543 0.254555,0.09408 0.517413,0.177086 0.788574,0.249024 0.27669,0.06641 0.553383,0.121746 0.830078,0.166015 0.276689,0.03874 0.539547,0.05811 0.788574,0.05811 0.741532,2e-6 1.305985,-0.152179 1.69336,-0.456543 0.387364,-0.309893 0.581048
 ,-0.799639 0.581054,-1.469239 -6e-6,-0.597651 -0.190924,-1.051427 -0.572754,-1.361328 -0.376307,-0.315424 -0.960128,-0.473139 -1.751464,-0.473144 -0.143884,5e-6 -0.298832,0.0083 -0.464844,0.0249 -0.160485,0.01661 -0.320967,0.03874 -0.481446,0.06641 -0.15495,0.02768 -0.304364,0.05811 -0.448242,0.09131 -0.143882,0.02767 -0.268394,0.05811 -0.373535,0.09131 l -1.020996,-0.547852 0.456543,-6.1840821 6.408203,0 0,2.1748051 -4.183594,0 -0.199218,2.382324 c 0.177079,-0.03873 0.381832,-0.07747 0.614257,-0.116211 0.237952,-0.03873 0.542314,-0.0581 0.913086,-0.05811"
+       id="path2841"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/16.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/16.png
new file mode 100644
index 0000000..d38a155
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/16.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/16.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/16.svg
new file mode 100644
index 0000000..cb7e2f5
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/16.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 13.215925,22.008438 -2.564941,0 0,-7.022461 c -4e-6,-0.143873 -4e-6,-0.315422 0,-0.514648 0.0055,-0.204745 0.01106,-0.415031 0.0166,-0.63086 0.01106,-0.221345 0.01936,-0.442699 0.0249,-0.664062 0.01106,-0.221345 0.01936,-0.423331 0.0249,-0.605957 -0.02767,0.03321 -0.07471,0.08302 -0.141113,0.149414 -0.06641,0.06642 -0.141118,0.141122 -0.224121,0.224121 -0.08301,0.07748 -0.168787,0.157724 -0.257325,0.240723 -0.08854,0.08302 -0.1743194,0.157723 -0.2573238,0.224121 L 8.442976,14.529434 7.1978588,12.985489 11.107527,9.8726959 l 2.108398,0 0,12.1357421"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 16.428328,16.853653 c -1e-6,-0.581049 0.03044,-1.159336 0.09131,-1.734863 0.06641,-0.575514 0.17985,-1.126132 0.340332,-1.651856 0.166015,-0.531241 0.387369,-1.023753 0.664063,-1.477539 0.282224,-0.453765 0.636391,-0.846669 1.0625,-1.178711 0.431637,-0.337553 0.946285,-0.600411 1.543945,-0.788574 0.603185,-0.1936727 1.305984,-0.2905151 2.108398,-0.2905274 0.116205,1.23e-5 0.243483,0.00278 0.381836,0.0083 0.13834,0.00555 0.276686,0.013847 0.415039,0.024902 0.143873,0.00555 0.282219,0.016614 0.415039,0.033203 0.132805,0.016614 0.251783,0.035982 0.356934,0.058105 l 0,2.0502924 c -0.210294,-0.04979 -0.434415,-0.08853 -0.672363,-0.116211 -0.232429,-0.03319 -0.467618,-0.04979 -0.705567,-0.0498 -0.747076,1e-5 -1.361333,0.09408 -1.842773,0.282226 -0.48145,0.182627 -0.863285,0.439951 -1.145508,0.771973 -0.28223,0.33204 -0.484215,0.730477 -0.605957,1.195312 -0.116214,0.464852 -0.188154,0.9795 -0.21582,1.543946 l 0.09961,0 c 0.110674,-0.199212 0.243487,-0.384596 0.398438,-0
 .556153 0.160478,-0.177076 0.345862,-0.32649 0.556152,-0.448242 0.210282,-0.127271 0.445471,-0.22688 0.705566,-0.298828 0.265621,-0.07193 0.561681,-0.107902 0.888184,-0.10791 0.52571,8e-6 0.998854,0.08578 1.419434,0.257324 0.420565,0.171557 0.774732,0.42058 1.0625,0.74707 0.293286,0.326504 0.517407,0.727708 0.672363,1.203614 0.154939,0.475916 0.232413,1.021 0.232422,1.635254 -9e-6,0.658532 -0.09408,1.247887 -0.282227,1.768066 -0.182625,0.520184 -0.445483,0.962892 -0.788574,1.328125 -0.343106,0.359701 -0.758145,0.636394 -1.245117,0.830078 -0.486985,0.188151 -1.034836,0.282227 -1.643555,0.282227 -0.59766,0 -1.156579,-0.105144 -1.676758,-0.31543 -0.520185,-0.21582 -0.97396,-0.542317 -1.361328,-0.979492 -0.381837,-0.437173 -0.683432,-0.987791 -0.904785,-1.651856 -0.215821,-0.669593 -0.323731,-1.460933 -0.32373,-2.374023 m 4.216796,3.270508 c 0.226883,2e-6 0.431636,-0.0415 0.614258,-0.124512 0.188146,-0.08854 0.348627,-0.218585 0.481446,-0.390137 0.13834,-0.17708 0.243483,-0.3984
 34 0.315429,-0.664062 0.07747,-0.265622 0.116205,-0.581051 0.116211,-0.946289 -6e-6,-0.592118 -0.124518,-1.056961 -0.373535,-1.394531 -0.243495,-0.343094 -0.61703,-0.514643 -1.120605,-0.514649 -0.254562,6e-6 -0.486984,0.04981 -0.697266,0.149414 -0.21029,0.09962 -0.390141,0.229661 -0.539551,0.390137 -0.149417,0.160487 -0.265628,0.340337 -0.348633,0.539551 -0.07748,0.199223 -0.116214,0.401209 -0.116211,0.605957 -3e-6,0.28223 0.0332,0.564456 0.09961,0.846679 0.07194,0.276696 0.17708,0.528486 0.315429,0.755371 0.143877,0.221357 0.318193,0.401207 0.52295,0.539551 0.210282,0.138349 0.453771,0.207522 0.730468,0.20752"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/17.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/17.png
new file mode 100644
index 0000000..d83e898
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/17.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/17.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/17.svg
new file mode 100644
index 0000000..5d6f0ad
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/17.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 13.215925,22.008438 -2.564941,0 0,-7.022461 c -4e-6,-0.143873 -4e-6,-0.315422 0,-0.514648 0.0055,-0.204745 0.01106,-0.415031 0.0166,-0.63086 0.01106,-0.221345 0.01936,-0.442699 0.0249,-0.664062 0.01106,-0.221345 0.01936,-0.423331 0.0249,-0.605957 -0.02767,0.03321 -0.07471,0.08302 -0.141113,0.149414 -0.06641,0.06642 -0.141118,0.141122 -0.224121,0.224121 -0.08301,0.07748 -0.168787,0.157724 -0.257325,0.240723 -0.08854,0.08302 -0.1743194,0.157723 -0.2573238,0.224121 L 8.442976,14.529434 7.1978588,12.985489 11.107527,9.8726959 l 2.108398,0 0,12.1357421"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 17.51573,22.008438 4.316406,-9.960937 -5.578125,0 0,-2.1582035 8.367188,0 0,1.6103515 -4.424317,10.508789 -2.681152,0"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/18.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/18.png
new file mode 100644
index 0000000..9e39de4
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/18.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/18.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/18.svg
new file mode 100644
index 0000000..9ea672c
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/18.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 13.215925,22.008438 -2.564941,0 0,-7.022461 c -4e-6,-0.143873 -4e-6,-0.315422 0,-0.514648 0.0055,-0.204745 0.01106,-0.415031 0.0166,-0.63086 0.01106,-0.221345 0.01936,-0.442699 0.0249,-0.664062 0.01106,-0.221345 0.01936,-0.423331 0.0249,-0.605957 -0.02767,0.03321 -0.07471,0.08302 -0.141113,0.149414 -0.06641,0.06642 -0.141118,0.141122 -0.224121,0.224121 -0.08301,0.07748 -0.168787,0.157724 -0.257325,0.240723 -0.08854,0.08302 -0.1743194,0.157723 -0.2573238,0.224121 L 8.442976,14.529434 7.1978588,12.985489 11.107527,9.8726959 l 2.108398,0 0,12.1357421"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 20.48741,9.7149811 c 0.503575,1.23e-5 0.979486,0.060885 1.427734,0.1826172 0.448236,0.1217567 0.841139,0.3043737 1.178711,0.5478517 0.337557,0.243501 0.605949,0.547862 0.805176,0.913086 0.19921,0.365244 0.298819,0.794118 0.298828,1.286621 -9e-6,0.365243 -0.05535,0.697274 -0.166016,0.996094 -0.110685,0.293302 -0.262866,0.561694 -0.456543,0.805175 -0.193692,0.237963 -0.423347,0.451017 -0.688965,0.639161 -0.265631,0.188157 -0.553392,0.359707 -0.863281,0.514648 0.320957,0.171556 0.63362,0.362473 0.937988,0.572754 0.309889,0.210292 0.583814,0.448247 0.821778,0.713867 0.237947,0.260096 0.428865,0.55339 0.572754,0.879883 0.143871,0.326501 0.215811,0.691735 0.21582,1.095703 -9e-6,0.503583 -0.09962,0.960126 -0.298828,1.369629 -0.199227,0.409506 -0.478687,0.758139 -0.838379,1.045898 -0.359708,0.287761 -0.791348,0.509115 -1.294922,0.664063 -0.498053,0.154948 -1.048671,0.232422 -1.651855,0.232422 -0.652999,0 -1.234053,-0.07471 -1.743164,-0.224121 -0.509117,-0.149414 -0.93799
 1,-0.362467 -1.286622,-0.639161 -0.348634,-0.276691 -0.614258,-0.617023 -0.796875,-1.020996 -0.177084,-0.403969 -0.265625,-0.857744 -0.265625,-1.361328 0,-0.415035 0.06087,-0.78857 0.182618,-1.120605 0.121744,-0.332027 0.287759,-0.630855 0.498046,-0.896485 0.210285,-0.265619 0.456542,-0.500808 0.73877,-0.705566 0.282224,-0.204747 0.583819,-0.384597 0.904785,-0.539551 -0.271161,-0.171543 -0.525718,-0.356927 -0.763672,-0.556152 -0.237957,-0.204746 -0.445477,-0.428866 -0.622558,-0.672363 -0.171551,-0.249016 -0.309897,-0.522942 -0.415039,-0.821778 -0.09961,-0.298819 -0.149415,-0.628083 -0.149414,-0.987793 -1e-6,-0.481435 0.09961,-0.902008 0.298828,-1.261718 0.204751,-0.365224 0.478676,-0.669585 0.821777,-0.913086 0.343097,-0.249012 0.738767,-0.434396 1.187012,-0.5561527 0.448238,-0.1217326 0.918615,-0.1826049 1.411133,-0.1826172 m -1.718262,9.0644529 c -3e-6,0.221357 0.03597,0.42611 0.10791,0.614258 0.07194,0.18262 0.17708,0.340334 0.31543,0.473145 0.143876,0.132814 0.32096,0.23
 7957 0.53125,0.315429 0.210282,0.07194 0.453771,0.107912 0.730468,0.10791 0.58105,2e-6 1.015457,-0.135577 1.303223,-0.406738 0.287754,-0.27669 0.431634,-0.639157 0.431641,-1.087402 -7e-6,-0.232419 -0.04981,-0.439938 -0.149414,-0.622559 -0.09408,-0.188147 -0.218594,-0.359696 -0.373535,-0.514648 -0.14942,-0.160478 -0.32097,-0.307125 -0.514649,-0.439942 -0.19369,-0.132807 -0.387375,-0.260086 -0.581055,-0.381836 L 20.3878,16.72084 c -0.243494,0.12175 -0.464848,0.254563 -0.664062,0.398438 -0.199223,0.138351 -0.370772,0.293299 -0.514649,0.464844 -0.138349,0.16602 -0.246259,0.348637 -0.32373,0.547851 -0.07748,0.199223 -0.116214,0.415043 -0.116211,0.647461 m 1.70166,-7.188476 c -0.182622,10e-6 -0.354171,0.02768 -0.514648,0.08301 -0.154952,0.05535 -0.290532,0.13559 -0.406739,0.240723 -0.11068,0.105153 -0.199222,0.235199 -0.265625,0.390137 -0.06641,0.154957 -0.09961,0.329274 -0.09961,0.522949 -3e-6,0.232431 0.0332,0.434416 0.09961,0.605957 0.07194,0.166024 0.166012,0.315438 0.282227,0
 .448242 0.121741,0.127287 0.260087,0.243498 0.415039,0.348633 0.160477,0.09962 0.32926,0.199226 0.506348,0.298828 0.171544,-0.08853 0.334793,-0.185376 0.489746,-0.290527 0.154942,-0.105135 0.290522,-0.224113 0.406738,-0.356934 0.121739,-0.138338 0.218581,-0.293286 0.290527,-0.464843 0.07193,-0.171541 0.107904,-0.367993 0.10791,-0.589356 -6e-6,-0.193675 -0.03321,-0.367992 -0.09961,-0.522949 -0.06641,-0.154938 -0.15772,-0.284984 -0.273926,-0.390137 -0.116216,-0.105133 -0.254562,-0.185374 -0.415039,-0.240723 -0.160487,-0.05533 -0.334803,-0.083 -0.522949,-0.08301"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/19.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/19.png
new file mode 100644
index 0000000..9eeedfb
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/19.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/19.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/19.svg
new file mode 100644
index 0000000..80d1d09
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/19.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 13.215925,22.008438 -2.564941,0 0,-7.022461 c -4e-6,-0.143873 -4e-6,-0.315422 0,-0.514648 0.0055,-0.204745 0.01106,-0.415031 0.0166,-0.63086 0.01106,-0.221345 0.01936,-0.442699 0.0249,-0.664062 0.01106,-0.221345 0.01936,-0.423331 0.0249,-0.605957 -0.02767,0.03321 -0.07471,0.08302 -0.141113,0.149414 -0.06641,0.06642 -0.141118,0.141122 -0.224121,0.224121 -0.08301,0.07748 -0.168787,0.157724 -0.257325,0.240723 -0.08854,0.08302 -0.1743194,0.157723 -0.2573238,0.224121 L 8.442976,14.529434 7.1978588,12.985489 11.107527,9.8726959 l 2.108398,0 0,12.1357421"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 24.554792,15.052383 c -8e-6,0.581061 -0.03321,1.162116 -0.09961,1.743164 -0.06088,0.575526 -0.174325,1.126144 -0.340332,1.651856 -0.16049,0.525719 -0.381844,1.018232 -0.664063,1.477539 -0.2767,0.453778 -0.630866,0.846681 -1.0625,1.178711 -0.426112,0.332032 -0.94076,0.59489 -1.543945,0.788574 -0.597661,0.188151 -1.300459,0.282227 -2.108398,0.282227 -0.116214,0 -0.243493,-0.0028 -0.381836,-0.0083 -0.138349,-0.0055 -0.279462,-0.01384 -0.42334,-0.0249 -0.138348,-0.0055 -0.273928,-0.0166 -0.406738,-0.0332 -0.132814,-0.01107 -0.249025,-0.02767 -0.348633,-0.0498 l 0,-2.058594 c 0.204751,0.05534 0.423338,0.09961 0.655762,0.132813 0.237953,0.02767 0.478675,0.04151 0.722168,0.0415 0.747066,2e-6 1.361324,-0.09131 1.842773,-0.273925 0.48144,-0.188149 0.863276,-0.44824 1.145508,-0.780274 0.28222,-0.337562 0.481439,-0.738766 0.597656,-1.203613 0.121738,-0.464839 0.196445,-0.97672 0.224121,-1.535645 l -0.10791,0 c -0.110683,0.199225 -0.243496,0.384609 -0.398438,0.556153 -0.1549
 53,0.171554 -0.33757,0.320968 -0.547851,0.448242 -0.210292,0.127283 -0.448247,0.226892 -0.713867,0.298828 -0.26563,0.07194 -0.561691,0.107914 -0.888184,0.10791 -0.525719,4e-6 -0.998863,-0.08577 -1.419433,-0.257324 -0.420575,-0.171545 -0.777509,-0.420568 -1.070801,-0.74707 -0.287762,-0.326492 -0.509116,-0.727696 -0.664063,-1.203614 -0.154948,-0.475904 -0.232422,-1.020988 -0.232422,-1.635253 0,-0.65852 0.09131,-1.247875 0.273926,-1.768067 0.18815,-0.520172 0.453775,-0.960113 0.796875,-1.319824 0.343097,-0.365223 0.758136,-0.644682 1.245117,-0.838379 0.49251,-0.1936727 1.043128,-0.2905151 1.651856,-0.2905274 0.597651,1.23e-5 1.15657,0.1079224 1.676758,0.3237304 0.520175,0.210298 0.971184,0.534028 1.353027,0.971192 0.381828,0.437185 0.683423,0.990569 0.904785,1.660156 0.221346,0.669605 0.332023,1.458178 0.332031,2.365722 m -4.216796,-3.262207 c -0.226893,1.1e-5 -0.434412,0.04151 -0.622559,0.124512 -0.188155,0.08302 -0.351403,0.213063 -0.489746,0.390137 -0.132816,0.171559 -0.2379
 59,0.392913 -0.31543,0.664062 -0.07194,0.265634 -0.107913,0.581063 -0.10791,0.946289 -3e-6,0.586596 0.124509,1.05144 0.373535,1.394532 0.24902,0.343105 0.625322,0.514654 1.128906,0.514648 0.254553,6e-6 0.486975,-0.0498 0.697266,-0.149414 0.210281,-0.0996 0.390131,-0.229648 0.539551,-0.390137 0.149408,-0.160475 0.262852,-0.340325 0.340332,-0.53955 0.083,-0.199212 0.124505,-0.401197 0.124512,-0.605958 -7e-6,-0.282218 -0.03598,-0.561677 -0.107911,-0.838378 -0.06641,-0.282218 -0.171555,-0.534008 -0.315429,-0.755372 -0.138352,-0.226878 -0.312669,-0.409495 -0.52295,-0.547851 -0.204757,-0.138336 -0.44548,-0.207509 -0.722167,-0.20752"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/2.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/2.png
new file mode 100644
index 0000000..ff9cc57
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/2.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/2.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/2.svg
new file mode 100644
index 0000000..8e94260
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/2.svg
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 19.89546,22.008438 -8.143066,0 0,-1.784668 2.855468,-3.07959 c 0.359697,-0.387364 0.686194,-0.744297 0.979493,-1.0708 0.293289,-0.326492 0.545079,-0.644688 0.755371,-0.95459 0.210281,-0.309889 0.373529,-0.625318 0.489746,-0.946289 0.116205,-0.320956 0.17431,-0.666821 0.174316,-1.037598 -6e-6,-0.409496 -0.124517,-0.727692 -0.373535,-0.95459 -0.243495,-0.226878 -0.572759,-0.340322 -0.987793,-0.340332 -0.437178,10e-6 -0.857751,0.10792 -1.261719,0.323731 -0.403974,0.215829 -0.827313,0.522958 -1.270019,0.921386 l -1.394531,-1.651855 c 0.249022,-0.226877 0.509113,-0.442698 0.780273,-0.647461 0.271157,-0.210275 0.569985,-0.395659 0.896484,-0.556152 0.326495,-0.16047 0.686195,-0.2877488 1.079102,-0.3818364 0.3929,-0.099597 0.832841,-0.1494018 1.319824,-0.1494141 0.58105,1.23e-5 1.101231,0.080253 1.560547,0.2407227 0.464837,0.1604938 0.860507,0.3901488 1.187012,0.6889648 0.326489,0.293305 0.575513,0.650239 0.74707,1.070801 0.177075,0.420583 0.265617,0.893727 0.265625,1.41
 9433 -8e-6,0.47592 -0.08302,0.932463 -0.249023,1.369629 -0.166024,0.431648 -0.392912,0.857754 -0.680664,1.278321 -0.287768,0.415044 -0.622566,0.830083 -1.004395,1.245117 -0.376308,0.40951 -0.780279,0.827315 -1.211914,1.253418 l -1.460937,1.469238 0,0.116211 4.947265,0 0,2.158203"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/20.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/20.png
new file mode 100644
index 0000000..b28b4aa
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/20.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/20.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/20.svg
new file mode 100644
index 0000000..409ac6e
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/20.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 15.257917,22.008438 -8.143066,0 0,-1.784668 2.8554687,-3.07959 c 0.3596963,-0.387364 0.6861933,-0.744297 0.9794923,-1.0708 0.293289,-0.326492 0.54508,-0.644688 0.755371,-0.95459 0.210281,-0.309889 0.37353,-0.625318 0.489746,-0.946289 0.116205,-0.320956 0.174311,-0.666821 0.174317,-1.037598 -6e-6,-0.409496 -0.124518,-0.727692 -0.373536,-0.95459 -0.243495,-0.226878 -0.572759,-0.340322 -0.987793,-0.340332 -0.437178,10e-6 -0.857751,0.10792 -1.2617183,0.323731 C 9.3422244,12.379541 8.918885,12.68667 8.4761791,13.085098 L 7.0816479,11.433243 C 7.3306704,11.206366 7.5907613,10.990545 7.8619213,10.785782 8.1330785,10.575507 8.4319063,10.390123 8.7584057,10.22963 9.0849004,10.06916 9.4446006,9.9418812 9.8375072,9.8477936 10.230407,9.7481965 10.670348,9.6983918 11.157331,9.6983795 c 0.58105,1.23e-5 1.101232,0.080253 1.560547,0.2407227 0.464837,0.1604938 0.860508,0.3901488 1.187012,0.6889648 0.32649,0.293305 0.575513,0.650239 0.74707,1.070801 0.177075,0.420583 0.265617,0.89
 3727 0.265625,1.419433 -8e-6,0.47592 -0.08302,0.932463 -0.249023,1.369629 -0.166024,0.431648 -0.392912,0.857754 -0.680664,1.278321 -0.287768,0.415044 -0.622566,0.830083 -1.004395,1.245117 -0.376308,0.40951 -0.780279,0.827315 -1.211914,1.253418 l -1.460937,1.469238 0,0.116211 4.947265,0 0,2.158203"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 24.6378,15.940567 c -9e-6,0.979497 -0.07748,1.853845 -0.232422,2.623047 -0.149422,0.769208 -0.392912,1.422202 -0.730468,1.958984 -0.332039,0.536785 -0.763679,0.94629 -1.294922,1.228516 -0.525722,0.282226 -1.162115,0.42334 -1.90918,0.42334 -0.702803,0 -1.314294,-0.141114 -1.834473,-0.42334 -0.520184,-0.282226 -0.951824,-0.691731 -1.294922,-1.228516 -0.3431,-0.536782 -0.600424,-1.189776 -0.771972,-1.958984 -0.166016,-0.769202 -0.249024,-1.64355 -0.249024,-2.623047 0,-0.979485 0.07471,-1.8566 0.224121,-2.631348 0.154948,-0.77473 0.398437,-1.430491 0.730469,-1.967285 0.33203,-0.536772 0.760903,-0.946277 1.286621,-1.228515 0.525713,-0.2877487 1.162106,-0.4316287 1.90918,-0.431641 0.69726,1.23e-5 1.305984,0.1411254 1.826172,0.42334 0.520175,0.282238 0.954582,0.691743 1.303223,1.228515 0.348624,0.536794 0.608715,1.192555 0.780273,1.967286 0.171541,0.774747 0.257315,1.654629 0.257324,2.639648 m -5.760742,0 c -3e-6,1.383468 0.118975,2.423832 0.356934,3.121094 0.237952,0.6
 97268 0.650223,1.0459 1.236816,1.045898 0.575516,2e-6 0.987787,-0.345863 1.236816,-1.037597 0.254552,-0.691729 0.38183,-1.734859 0.381836,-3.129395 -6e-6,-1.38899 -0.127284,-2.43212 -0.381836,-3.129395 -0.249029,-0.702789 -0.6613,-1.054188 -1.236816,-1.054199 -0.293299,1.1e-5 -0.542322,0.08855 -0.74707,0.265625 -0.199223,0.177093 -0.362471,0.439951 -0.489746,0.788574 -0.127282,0.348642 -0.218591,0.785816 -0.273926,1.311524 -0.05534,0.52019 -0.08301,1.126146 -0.08301,1.817871"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/21.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/21.png
new file mode 100644
index 0000000..eda952c
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/21.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/21.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/21.svg
new file mode 100644
index 0000000..7bc03af
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/21.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 15.257917,22.008438 -8.143066,0 0,-1.784668 2.8554687,-3.07959 c 0.3596963,-0.387364 0.6861933,-0.744297 0.9794923,-1.0708 0.293289,-0.326492 0.54508,-0.644688 0.755371,-0.95459 0.210281,-0.309889 0.37353,-0.625318 0.489746,-0.946289 0.116205,-0.320956 0.174311,-0.666821 0.174317,-1.037598 -6e-6,-0.409496 -0.124518,-0.727692 -0.373536,-0.95459 -0.243495,-0.226878 -0.572759,-0.340322 -0.987793,-0.340332 -0.437178,10e-6 -0.857751,0.10792 -1.2617183,0.323731 C 9.3422244,12.379541 8.918885,12.68667 8.4761791,13.085098 L 7.0816479,11.433243 C 7.3306704,11.206366 7.5907613,10.990545 7.8619213,10.785782 8.1330785,10.575507 8.4319063,10.390123 8.7584057,10.22963 9.0849004,10.06916 9.4446006,9.9418812 9.8375072,9.8477936 10.230407,9.7481965 10.670348,9.6983918 11.157331,9.6983795 c 0.58105,1.23e-5 1.101232,0.080253 1.560547,0.2407227 0.464837,0.1604938 0.860508,0.3901488 1.187012,0.6889648 0.32649,0.293305 0.575513,0.650239 0.74707,1.070801 0.177075,0.420583 0.265617,0.89
 3727 0.265625,1.419433 -8e-6,0.47592 -0.08302,0.932463 -0.249023,1.369629 -0.166024,0.431648 -0.392912,0.857754 -0.680664,1.278321 -0.287768,0.415044 -0.622566,0.830083 -1.004395,1.245117 -0.376308,0.40951 -0.780279,0.827315 -1.211914,1.253418 l -1.460937,1.469238 0,0.116211 4.947265,0 0,2.158203"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 22.579206,22.008438 -2.564941,0 0,-7.022461 c -4e-6,-0.143873 -4e-6,-0.315422 0,-0.514648 0.0055,-0.204745 0.01106,-0.415031 0.0166,-0.63086 0.01106,-0.221345 0.01936,-0.442699 0.0249,-0.664062 0.01106,-0.221345 0.01936,-0.423331 0.0249,-0.605957 -0.02767,0.03321 -0.07471,0.08302 -0.141113,0.149414 -0.06641,0.06642 -0.141117,0.141122 -0.224121,0.224121 -0.08301,0.07748 -0.168786,0.157724 -0.257324,0.240723 -0.08855,0.08302 -0.17432,0.157723 -0.257325,0.224121 l -1.394531,1.120605 -1.245117,-1.543945 3.909668,-3.1127931 2.108398,0 0,12.1357421"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/22.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/22.png
new file mode 100644
index 0000000..90b14b0
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/22.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/22.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/22.svg
new file mode 100644
index 0000000..fe086f6
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/22.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 15.257917,22.008438 -8.143066,0 0,-1.784668 2.8554687,-3.07959 c 0.3596963,-0.387364 0.6861933,-0.744297 0.9794923,-1.0708 0.293289,-0.326492 0.54508,-0.644688 0.755371,-0.95459 0.210281,-0.309889 0.37353,-0.625318 0.489746,-0.946289 0.116205,-0.320956 0.174311,-0.666821 0.174317,-1.037598 -6e-6,-0.409496 -0.124518,-0.727692 -0.373536,-0.95459 -0.243495,-0.226878 -0.572759,-0.340322 -0.987793,-0.340332 -0.437178,10e-6 -0.857751,0.10792 -1.2617183,0.323731 C 9.3422244,12.379541 8.918885,12.68667 8.4761791,13.085098 L 7.0816479,11.433243 C 7.3306704,11.206366 7.5907613,10.990545 7.8619213,10.785782 8.1330785,10.575507 8.4319063,10.390123 8.7584057,10.22963 9.0849004,10.06916 9.4446006,9.9418812 9.8375072,9.8477936 10.230407,9.7481965 10.670348,9.6983918 11.157331,9.6983795 c 0.58105,1.23e-5 1.101232,0.080253 1.560547,0.2407227 0.464837,0.1604938 0.860508,0.3901488 1.187012,0.6889648 0.32649,0.293305 0.575513,0.650239 0.74707,1.070801 0.177075,0.420583 0.265617,0.89
 3727 0.265625,1.419433 -8e-6,0.47592 -0.08302,0.932463 -0.249023,1.369629 -0.166024,0.431648 -0.392912,0.857754 -0.680664,1.278321 -0.287768,0.415044 -0.622566,0.830083 -1.004395,1.245117 -0.376308,0.40951 -0.780279,0.827315 -1.211914,1.253418 l -1.460937,1.469238 0,0.116211 4.947265,0 0,2.158203"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 24.621199,22.008438 -8.143067,0 0,-1.784668 2.855469,-3.07959 c 0.359697,-0.387364 0.686194,-0.744297 0.979492,-1.0708 0.29329,-0.326492 0.54508,-0.644688 0.755371,-0.95459 0.210281,-0.309889 0.37353,-0.625318 0.489746,-0.946289 0.116205,-0.320956 0.174311,-0.666821 0.174317,-1.037598 -6e-6,-0.409496 -0.124518,-0.727692 -0.373535,-0.95459 -0.243495,-0.226878 -0.572759,-0.340322 -0.987793,-0.340332 -0.437179,10e-6 -0.857751,0.10792 -1.261719,0.323731 -0.403974,0.215829 -0.827314,0.522958 -1.27002,0.921386 l -1.394531,-1.651855 c 0.249023,-0.226877 0.509114,-0.442698 0.780274,-0.647461 0.271157,-0.210275 0.569985,-0.395659 0.896484,-0.556152 0.326495,-0.16047 0.686195,-0.2877488 1.079101,-0.3818364 0.3929,-0.099597 0.832841,-0.1494018 1.319825,-0.1494141 0.581049,1.23e-5 1.101231,0.080253 1.560547,0.2407227 0.464837,0.1604938 0.860507,0.3901488 1.187011,0.6889648 0.32649,0.293305 0.575513,0.650239 0.747071,1.070801 0.177075,0.420583 0.265616,0.893727 0.265625,1.419
 433 -9e-6,0.47592 -0.08302,0.932463 -0.249024,1.369629 -0.166024,0.431648 -0.392911,0.857754 -0.680664,1.278321 -0.287768,0.415044 -0.622565,0.830083 -1.004394,1.245117 -0.376309,0.40951 -0.78028,0.827315 -1.211914,1.253418 l -1.460938,1.469238 0,0.116211 4.947266,0 0,2.158203"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/23.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/23.png
new file mode 100644
index 0000000..8b35a74
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/23.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/23.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/23.svg
new file mode 100644
index 0000000..f17ec29
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/23.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 15.257917,22.008438 -8.143066,0 0,-1.784668 2.8554687,-3.07959 c 0.3596963,-0.387364 0.6861933,-0.744297 0.9794923,-1.0708 0.293289,-0.326492 0.54508,-0.644688 0.755371,-0.95459 0.210281,-0.309889 0.37353,-0.625318 0.489746,-0.946289 0.116205,-0.320956 0.174311,-0.666821 0.174317,-1.037598 -6e-6,-0.409496 -0.124518,-0.727692 -0.373536,-0.95459 -0.243495,-0.226878 -0.572759,-0.340322 -0.987793,-0.340332 -0.437178,10e-6 -0.857751,0.10792 -1.2617183,0.323731 C 9.3422244,12.379541 8.918885,12.68667 8.4761791,13.085098 L 7.0816479,11.433243 C 7.3306704,11.206366 7.5907613,10.990545 7.8619213,10.785782 8.1330785,10.575507 8.4319063,10.390123 8.7584057,10.22963 9.0849004,10.06916 9.4446006,9.9418812 9.8375072,9.8477936 10.230407,9.7481965 10.670348,9.6983918 11.157331,9.6983795 c 0.58105,1.23e-5 1.101232,0.080253 1.560547,0.2407227 0.464837,0.1604938 0.860508,0.3901488 1.187012,0.6889648 0.32649,0.293305 0.575513,0.650239 0.74707,1.070801 0.177075,0.420583 0.265617,0.89
 3727 0.265625,1.419433 -8e-6,0.47592 -0.08302,0.932463 -0.249023,1.369629 -0.166024,0.431648 -0.392912,0.857754 -0.680664,1.278321 -0.287768,0.415044 -0.622566,0.830083 -1.004395,1.245117 -0.376308,0.40951 -0.780279,0.827315 -1.211914,1.253418 l -1.460937,1.469238 0,0.116211 4.947265,0 0,2.158203"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 24.148054,12.587051 c -8e-6,0.420582 -0.06918,0.799651 -0.207519,1.137207 -0.132821,0.33204 -0.318205,0.625334 -0.556153,0.879883 -0.232429,0.249031 -0.509121,0.459317 -0.830078,0.63086 -0.315436,0.166022 -0.658535,0.2933 -1.029297,0.381836 l 0,0.0498 c 0.979486,0.121751 1.721021,0.420579 2.22461,0.896485 0.503572,0.470382 0.755362,1.106775 0.755371,1.909179 -9e-6,0.531253 -0.09685,1.023766 -0.290528,1.477539 -0.188159,0.448244 -0.481453,0.83838 -0.879882,1.170411 -0.392911,0.332031 -0.890958,0.592122 -1.494141,0.780273 -0.597662,0.182617 -1.303227,0.273926 -2.116699,0.273926 -0.652998,0 -1.267256,-0.05534 -1.842774,-0.166016 -0.575522,-0.105143 -1.112305,-0.268392 -1.610351,-0.489746 l 0,-2.183105 c 0.249022,0.132815 0.51188,0.249025 0.788574,0.348632 0.276691,0.09961 0.553384,0.185387 0.830078,0.257325 0.27669,0.06641 0.547849,0.116212 0.813477,0.149414 0.271155,0.0332 0.525712,0.04981 0.763671,0.0498 0.475908,2e-6 0.871578,-0.04427 1.187012,-0.132812 0.315425,
 -0.08854 0.567215,-0.213051 0.755371,-0.373535 0.188146,-0.16048 0.320958,-0.351397 0.398438,-0.572754 0.083,-0.226885 0.124505,-0.473141 0.124512,-0.73877 -7e-6,-0.249019 -0.05258,-0.47314 -0.157715,-0.672363 -0.09962,-0.20474 -0.265631,-0.376289 -0.498047,-0.51464 -0.226893,-0.143876 -0.525721,-0.254553 -0.896485,-0.332032 -0.370772,-0.07747 -0.827315,-0.116205 -1.369628,-0.116211 l -0.863282,0 0,-1.801269 0.84668,0 c 0.509111,7e-6 0.93245,-0.04426 1.270019,-0.132813 0.337561,-0.09407 0.605952,-0.218579 0.805176,-0.373535 0.204747,-0.160474 0.348627,-0.345858 0.431641,-0.556152 0.083,-0.210278 0.124506,-0.434399 0.124512,-0.672363 -6e-6,-0.431632 -0.135585,-0.769197 -0.406739,-1.012696 -0.26563,-0.243479 -0.688969,-0.365224 -1.270019,-0.365234 -0.265629,1e-5 -0.514652,0.02768 -0.747071,0.08301 -0.226891,0.04981 -0.439944,0.116221 -0.63916,0.199218 -0.193687,0.07748 -0.373537,0.166026 -0.53955,0.265625 -0.160484,0.09409 -0.307131,0.188161 -0.439942,0.282227 l -1.294922,-1.7
 09961 c 0.232421,-0.171538 0.484212,-0.329253 0.755371,-0.473145 0.276692,-0.143868 0.575519,-0.26838 0.896485,-0.373535 0.320961,-0.1106647 0.666826,-0.1964393 1.037597,-0.2573239 0.370765,-0.06086 0.766435,-0.091296 1.187012,-0.091309 0.597651,1.23e-5 1.139969,0.066419 1.626953,0.1992188 0.492507,0.1272911 0.913079,0.3154421 1.261719,0.5644531 0.348625,0.243501 0.617017,0.545096 0.805176,0.904786 0.193676,0.354177 0.290519,0.760914 0.290527,1.220214"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/24.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/24.png
new file mode 100644
index 0000000..6041b02
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/24.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/24.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/24.svg
new file mode 100644
index 0000000..42a5333
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/24.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 15.257917,22.008438 -8.143066,0 0,-1.784668 2.8554687,-3.07959 c 0.3596963,-0.387364 0.6861933,-0.744297 0.9794923,-1.0708 0.293289,-0.326492 0.54508,-0.644688 0.755371,-0.95459 0.210281,-0.309889 0.37353,-0.625318 0.489746,-0.946289 0.116205,-0.320956 0.174311,-0.666821 0.174317,-1.037598 -6e-6,-0.409496 -0.124518,-0.727692 -0.373536,-0.95459 -0.243495,-0.226878 -0.572759,-0.340322 -0.987793,-0.340332 -0.437178,10e-6 -0.857751,0.10792 -1.2617183,0.323731 C 9.3422244,12.379541 8.918885,12.68667 8.4761791,13.085098 L 7.0816479,11.433243 C 7.3306704,11.206366 7.5907613,10.990545 7.8619213,10.785782 8.1330785,10.575507 8.4319063,10.390123 8.7584057,10.22963 9.0849004,10.06916 9.4446006,9.9418812 9.8375072,9.8477936 10.230407,9.7481965 10.670348,9.6983918 11.157331,9.6983795 c 0.58105,1.23e-5 1.101232,0.080253 1.560547,0.2407227 0.464837,0.1604938 0.860508,0.3901488 1.187012,0.6889648 0.32649,0.293305 0.575513,0.650239 0.74707,1.070801 0.177075,0.420583 0.265617,0.89
 3727 0.265625,1.419433 -8e-6,0.47592 -0.08302,0.932463 -0.249023,1.369629 -0.166024,0.431648 -0.392912,0.857754 -0.680664,1.278321 -0.287768,0.415044 -0.622566,0.830083 -1.004395,1.245117 -0.376308,0.40951 -0.780279,0.827315 -1.211914,1.253418 l -1.460937,1.469238 0,0.116211 4.947265,0 0,2.158203"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 24.803816,19.493301 -1.460938,0 0,2.515137 -2.498535,0 0,-2.515137 -5.013672,0 0,-1.784668 5.154785,-7.8359371 2.357422,0 0,7.6284181 1.460938,0 0,1.992187 m -3.959473,-1.992187 0,-2.058594 c -5e-6,-0.07193 -5e-6,-0.17431 0,-0.307129 0.0055,-0.138339 0.01106,-0.293287 0.0166,-0.464844 0.0055,-0.171541 0.01106,-0.348625 0.0166,-0.53125 0.01106,-0.182609 0.01936,-0.356925 0.0249,-0.522949 0.01106,-0.166007 0.01936,-0.309887 0.0249,-0.43164 0.01106,-0.12727 0.01936,-0.218579 0.0249,-0.273926 l -0.07471,0 c -0.09961,0.232431 -0.213058,0.478687 -0.340332,0.738769 -0.121749,0.2601 -0.262862,0.520191 -0.42334,0.780274 l -2.02539,3.071289 2.755859,0"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/25.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/25.png
new file mode 100644
index 0000000..ecb15e6
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/25.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/25.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/25.svg
new file mode 100644
index 0000000..a8d4672
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/25.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 15.257917,22.008438 -8.143066,0 0,-1.784668 2.8554687,-3.07959 c 0.3596963,-0.387364 0.6861933,-0.744297 0.9794923,-1.0708 0.293289,-0.326492 0.54508,-0.644688 0.755371,-0.95459 0.210281,-0.309889 0.37353,-0.625318 0.489746,-0.946289 0.116205,-0.320956 0.174311,-0.666821 0.174317,-1.037598 -6e-6,-0.409496 -0.124518,-0.727692 -0.373536,-0.95459 -0.243495,-0.226878 -0.572759,-0.340322 -0.987793,-0.340332 -0.437178,10e-6 -0.857751,0.10792 -1.2617183,0.323731 C 9.3422244,12.379541 8.918885,12.68667 8.4761791,13.085098 L 7.0816479,11.433243 C 7.3306704,11.206366 7.5907613,10.990545 7.8619213,10.785782 8.1330785,10.575507 8.4319063,10.390123 8.7584057,10.22963 9.0849004,10.06916 9.4446006,9.9418812 9.8375072,9.8477936 10.230407,9.7481965 10.670348,9.6983918 11.157331,9.6983795 c 0.58105,1.23e-5 1.101232,0.080253 1.560547,0.2407227 0.464837,0.1604938 0.860508,0.3901488 1.187012,0.6889648 0.32649,0.293305 0.575513,0.650239 0.74707,1.070801 0.177075,0.420583 0.265617,0.89
 3727 0.265625,1.419433 -8e-6,0.47592 -0.08302,0.932463 -0.249023,1.369629 -0.166024,0.431648 -0.392912,0.857754 -0.680664,1.278321 -0.287768,0.415044 -0.622566,0.830083 -1.004395,1.245117 -0.376308,0.40951 -0.780279,0.827315 -1.211914,1.253418 l -1.460937,1.469238 0,0.116211 4.947265,0 0,2.158203"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 20.761335,14.255508 c 0.520177,8e-6 1.004389,0.08025 1.452637,0.240723 0.448235,0.160489 0.838372,0.395678 1.17041,0.705566 0.332024,0.309903 0.592114,0.697272 0.780274,1.16211 0.188142,0.459315 0.282218,0.987797 0.282226,1.585449 -8e-6,0.658532 -0.102385,1.250654 -0.307129,1.776367 -0.20476,0.520184 -0.506355,0.962892 -0.904785,1.328125 -0.398444,0.359701 -0.893724,0.636394 -1.48584,0.830078 -0.586594,0.193685 -1.261723,0.290528 -2.02539,0.290528 -0.304366,0 -0.605961,-0.01384 -0.904785,-0.0415 -0.298831,-0.02767 -0.586591,-0.06917 -0.863282,-0.124512 -0.27116,-0.04981 -0.531251,-0.116211 -0.780273,-0.199219 -0.243491,-0.08301 -0.464845,-0.17985 -0.664063,-0.290527 l 0,-2.216309 c 0.193684,0.11068 0.417805,0.215823 0.672364,0.31543 0.254555,0.09408 0.517413,0.177086 0.788574,0.249024 0.27669,0.06641 0.553383,0.121746 0.830078,0.166015 0.276689,0.03874 0.539547,0.05811 0.788574,0.05811 0.741532,2e-6 1.305985,-0.152179 1.69336,-0.456543 0.387364,-0.309893 0.581048
 ,-0.799639 0.581054,-1.469239 -6e-6,-0.597651 -0.190924,-1.051427 -0.572754,-1.361328 -0.376307,-0.315424 -0.960128,-0.473139 -1.751464,-0.473144 -0.143884,5e-6 -0.298832,0.0083 -0.464844,0.0249 -0.160485,0.01661 -0.320967,0.03874 -0.481446,0.06641 -0.15495,0.02768 -0.304364,0.05811 -0.448242,0.09131 -0.143882,0.02767 -0.268394,0.05811 -0.373535,0.09131 l -1.020996,-0.547852 0.456543,-6.1840821 6.408203,0 0,2.1748051 -4.183594,0 -0.199218,2.382324 c 0.177079,-0.03873 0.381832,-0.07747 0.614257,-0.116211 0.237952,-0.03873 0.542314,-0.0581 0.913086,-0.05811"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/26.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/26.png
new file mode 100644
index 0000000..4b2f560
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/26.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/26.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/26.svg
new file mode 100644
index 0000000..3cf00ec
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/26.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 15.257917,22.008438 -8.143066,0 0,-1.784668 2.8554687,-3.07959 c 0.3596963,-0.387364 0.6861933,-0.744297 0.9794923,-1.0708 0.293289,-0.326492 0.54508,-0.644688 0.755371,-0.95459 0.210281,-0.309889 0.37353,-0.625318 0.489746,-0.946289 0.116205,-0.320956 0.174311,-0.666821 0.174317,-1.037598 -6e-6,-0.409496 -0.124518,-0.727692 -0.373536,-0.95459 -0.243495,-0.226878 -0.572759,-0.340322 -0.987793,-0.340332 -0.437178,10e-6 -0.857751,0.10792 -1.2617183,0.323731 C 9.3422244,12.379541 8.918885,12.68667 8.4761791,13.085098 L 7.0816479,11.433243 C 7.3306704,11.206366 7.5907613,10.990545 7.8619213,10.785782 8.1330785,10.575507 8.4319063,10.390123 8.7584057,10.22963 9.0849004,10.06916 9.4446006,9.9418812 9.8375072,9.8477936 10.230407,9.7481965 10.670348,9.6983918 11.157331,9.6983795 c 0.58105,1.23e-5 1.101232,0.080253 1.560547,0.2407227 0.464837,0.1604938 0.860508,0.3901488 1.187012,0.6889648 0.32649,0.293305 0.575513,0.650239 0.74707,1.070801 0.177075,0.420583 0.265617,0.89
 3727 0.265625,1.419433 -8e-6,0.47592 -0.08302,0.932463 -0.249023,1.369629 -0.166024,0.431648 -0.392912,0.857754 -0.680664,1.278321 -0.287768,0.415044 -0.622566,0.830083 -1.004395,1.245117 -0.376308,0.40951 -0.780279,0.827315 -1.211914,1.253418 l -1.460937,1.469238 0,0.116211 4.947265,0 0,2.158203"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 16.428328,16.853653 c -1e-6,-0.581049 0.03044,-1.159336 0.09131,-1.734863 0.06641,-0.575514 0.17985,-1.126132 0.340332,-1.651856 0.166015,-0.531241 0.387369,-1.023753 0.664063,-1.477539 0.282224,-0.453765 0.636391,-0.846669 1.0625,-1.178711 0.431637,-0.337553 0.946285,-0.600411 1.543945,-0.788574 0.603185,-0.1936727 1.305984,-0.2905151 2.108398,-0.2905274 0.116205,1.23e-5 0.243483,0.00278 0.381836,0.0083 0.13834,0.00555 0.276686,0.013847 0.415039,0.024902 0.143873,0.00555 0.282219,0.016614 0.415039,0.033203 0.132805,0.016614 0.251783,0.035982 0.356934,0.058105 l 0,2.0502924 c -0.210294,-0.04979 -0.434415,-0.08853 -0.672363,-0.116211 -0.232429,-0.03319 -0.467618,-0.04979 -0.705567,-0.0498 -0.747076,1e-5 -1.361333,0.09408 -1.842773,0.282226 -0.48145,0.182627 -0.863285,0.439951 -1.145508,0.771973 -0.28223,0.33204 -0.484215,0.730477 -0.605957,1.195312 -0.116214,0.464852 -0.188154,0.9795 -0.21582,1.543946 l 0.09961,0 c 0.110674,-0.199212 0.243487,-0.384596 0.398438,-0
 .556153 0.160478,-0.177076 0.345862,-0.32649 0.556152,-0.448242 0.210282,-0.127271 0.445471,-0.22688 0.705566,-0.298828 0.265621,-0.07193 0.561681,-0.107902 0.888184,-0.10791 0.52571,8e-6 0.998854,0.08578 1.419434,0.257324 0.420565,0.171557 0.774732,0.42058 1.0625,0.74707 0.293286,0.326504 0.517407,0.727708 0.672363,1.203614 0.154939,0.475916 0.232413,1.021 0.232422,1.635254 -9e-6,0.658532 -0.09408,1.247887 -0.282227,1.768066 -0.182625,0.520184 -0.445483,0.962892 -0.788574,1.328125 -0.343106,0.359701 -0.758145,0.636394 -1.245117,0.830078 -0.486985,0.188151 -1.034836,0.282227 -1.643555,0.282227 -0.59766,0 -1.156579,-0.105144 -1.676758,-0.31543 -0.520185,-0.21582 -0.97396,-0.542317 -1.361328,-0.979492 -0.381837,-0.437173 -0.683432,-0.987791 -0.904785,-1.651856 -0.215821,-0.669593 -0.323731,-1.460933 -0.32373,-2.374023 m 4.216796,3.270508 c 0.226883,2e-6 0.431636,-0.0415 0.614258,-0.124512 0.188146,-0.08854 0.348627,-0.218585 0.481446,-0.390137 0.13834,-0.17708 0.243483,-0.3984
 34 0.315429,-0.664062 0.07747,-0.265622 0.116205,-0.581051 0.116211,-0.946289 -6e-6,-0.592118 -0.124518,-1.056961 -0.373535,-1.394531 -0.243495,-0.343094 -0.61703,-0.514643 -1.120605,-0.514649 -0.254562,6e-6 -0.486984,0.04981 -0.697266,0.149414 -0.21029,0.09962 -0.390141,0.229661 -0.539551,0.390137 -0.149417,0.160487 -0.265628,0.340337 -0.348633,0.539551 -0.07748,0.199223 -0.116214,0.401209 -0.116211,0.605957 -3e-6,0.28223 0.0332,0.564456 0.09961,0.846679 0.07194,0.276696 0.17708,0.528486 0.315429,0.755371 0.143877,0.221357 0.318193,0.401207 0.52295,0.539551 0.210282,0.138349 0.453771,0.207522 0.730468,0.20752"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/27.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/27.png
new file mode 100644
index 0000000..ecf058e
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/27.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/27.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/27.svg
new file mode 100644
index 0000000..c8d6440
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/27.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 15.257917,22.008438 -8.143066,0 0,-1.784668 2.8554687,-3.07959 c 0.3596963,-0.387364 0.6861933,-0.744297 0.9794923,-1.0708 0.293289,-0.326492 0.54508,-0.644688 0.755371,-0.95459 0.210281,-0.309889 0.37353,-0.625318 0.489746,-0.946289 0.116205,-0.320956 0.174311,-0.666821 0.174317,-1.037598 -6e-6,-0.409496 -0.124518,-0.727692 -0.373536,-0.95459 -0.243495,-0.226878 -0.572759,-0.340322 -0.987793,-0.340332 -0.437178,10e-6 -0.857751,0.10792 -1.2617183,0.323731 C 9.3422244,12.379541 8.918885,12.68667 8.4761791,13.085098 L 7.0816479,11.433243 C 7.3306704,11.206366 7.5907613,10.990545 7.8619213,10.785782 8.1330785,10.575507 8.4319063,10.390123 8.7584057,10.22963 9.0849004,10.06916 9.4446006,9.9418812 9.8375072,9.8477936 10.230407,9.7481965 10.670348,9.6983918 11.157331,9.6983795 c 0.58105,1.23e-5 1.101232,0.080253 1.560547,0.2407227 0.464837,0.1604938 0.860508,0.3901488 1.187012,0.6889648 0.32649,0.293305 0.575513,0.650239 0.74707,1.070801 0.177075,0.420583 0.265617,0.89
 3727 0.265625,1.419433 -8e-6,0.47592 -0.08302,0.932463 -0.249023,1.369629 -0.166024,0.431648 -0.392912,0.857754 -0.680664,1.278321 -0.287768,0.415044 -0.622566,0.830083 -1.004395,1.245117 -0.376308,0.40951 -0.780279,0.827315 -1.211914,1.253418 l -1.460937,1.469238 0,0.116211 4.947265,0 0,2.158203"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 17.51573,22.008438 4.316406,-9.960937 -5.578125,0 0,-2.1582035 8.367188,0 0,1.6103515 -4.424317,10.508789 -2.681152,0"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/28.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/28.png
new file mode 100644
index 0000000..e64efb2
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/28.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/28.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/28.svg
new file mode 100644
index 0000000..5acce93
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/28.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 15.257917,22.008438 -8.143066,0 0,-1.784668 2.8554687,-3.07959 c 0.3596963,-0.387364 0.6861933,-0.744297 0.9794923,-1.0708 0.293289,-0.326492 0.54508,-0.644688 0.755371,-0.95459 0.210281,-0.309889 0.37353,-0.625318 0.489746,-0.946289 0.116205,-0.320956 0.174311,-0.666821 0.174317,-1.037598 -6e-6,-0.409496 -0.124518,-0.727692 -0.373536,-0.95459 -0.243495,-0.226878 -0.572759,-0.340322 -0.987793,-0.340332 -0.437178,10e-6 -0.857751,0.10792 -1.2617183,0.323731 C 9.3422244,12.379541 8.918885,12.68667 8.4761791,13.085098 L 7.0816479,11.433243 C 7.3306704,11.206366 7.5907613,10.990545 7.8619213,10.785782 8.1330785,10.575507 8.4319063,10.390123 8.7584057,10.22963 9.0849004,10.06916 9.4446006,9.9418812 9.8375072,9.8477936 10.230407,9.7481965 10.670348,9.6983918 11.157331,9.6983795 c 0.58105,1.23e-5 1.101232,0.080253 1.560547,0.2407227 0.464837,0.1604938 0.860508,0.3901488 1.187012,0.6889648 0.32649,0.293305 0.575513,0.650239 0.74707,1.070801 0.177075,0.420583 0.265617,0.89
 3727 0.265625,1.419433 -8e-6,0.47592 -0.08302,0.932463 -0.249023,1.369629 -0.166024,0.431648 -0.392912,0.857754 -0.680664,1.278321 -0.287768,0.415044 -0.622566,0.830083 -1.004395,1.245117 -0.376308,0.40951 -0.780279,0.827315 -1.211914,1.253418 l -1.460937,1.469238 0,0.116211 4.947265,0 0,2.158203"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 20.48741,9.7149811 c 0.503575,1.23e-5 0.979486,0.060885 1.427734,0.1826172 0.448236,0.1217567 0.841139,0.3043737 1.178711,0.5478517 0.337557,0.243501 0.605949,0.547862 0.805176,0.913086 0.19921,0.365244 0.298819,0.794118 0.298828,1.286621 -9e-6,0.365243 -0.05535,0.697274 -0.166016,0.996094 -0.110685,0.293302 -0.262866,0.561694 -0.456543,0.805175 -0.193692,0.237963 -0.423347,0.451017 -0.688965,0.639161 -0.265631,0.188157 -0.553392,0.359707 -0.863281,0.514648 0.320957,0.171556 0.63362,0.362473 0.937988,0.572754 0.309889,0.210292 0.583814,0.448247 0.821778,0.713867 0.237947,0.260096 0.428865,0.55339 0.572754,0.879883 0.143871,0.326501 0.215811,0.691735 0.21582,1.095703 -9e-6,0.503583 -0.09962,0.960126 -0.298828,1.369629 -0.199227,0.409506 -0.478687,0.758139 -0.838379,1.045898 -0.359708,0.287761 -0.791348,0.509115 -1.294922,0.664063 -0.498053,0.154948 -1.048671,0.232422 -1.651855,0.232422 -0.652999,0 -1.234053,-0.07471 -1.743164,-0.224121 -0.509117,-0.149414 -0.93799
 1,-0.362467 -1.286622,-0.639161 -0.348634,-0.276691 -0.614258,-0.617023 -0.796875,-1.020996 -0.177084,-0.403969 -0.265625,-0.857744 -0.265625,-1.361328 0,-0.415035 0.06087,-0.78857 0.182618,-1.120605 0.121744,-0.332027 0.287759,-0.630855 0.498046,-0.896485 0.210285,-0.265619 0.456542,-0.500808 0.73877,-0.705566 0.282224,-0.204747 0.583819,-0.384597 0.904785,-0.539551 -0.271161,-0.171543 -0.525718,-0.356927 -0.763672,-0.556152 -0.237957,-0.204746 -0.445477,-0.428866 -0.622558,-0.672363 -0.171551,-0.249016 -0.309897,-0.522942 -0.415039,-0.821778 -0.09961,-0.298819 -0.149415,-0.628083 -0.149414,-0.987793 -1e-6,-0.481435 0.09961,-0.902008 0.298828,-1.261718 0.204751,-0.365224 0.478676,-0.669585 0.821777,-0.913086 0.343097,-0.249012 0.738767,-0.434396 1.187012,-0.5561527 0.448238,-0.1217326 0.918615,-0.1826049 1.411133,-0.1826172 m -1.718262,9.0644529 c -3e-6,0.221357 0.03597,0.42611 0.10791,0.614258 0.07194,0.18262 0.17708,0.340334 0.31543,0.473145 0.143876,0.132814 0.32096,0.23
 7957 0.53125,0.315429 0.210282,0.07194 0.453771,0.107912 0.730468,0.10791 0.58105,2e-6 1.015457,-0.135577 1.303223,-0.406738 0.287754,-0.27669 0.431634,-0.639157 0.431641,-1.087402 -7e-6,-0.232419 -0.04981,-0.439938 -0.149414,-0.622559 -0.09408,-0.188147 -0.218594,-0.359696 -0.373535,-0.514648 -0.14942,-0.160478 -0.32097,-0.307125 -0.514649,-0.439942 -0.19369,-0.132807 -0.387375,-0.260086 -0.581055,-0.381836 L 20.3878,16.72084 c -0.243494,0.12175 -0.464848,0.254563 -0.664062,0.398438 -0.199223,0.138351 -0.370772,0.293299 -0.514649,0.464844 -0.138349,0.16602 -0.246259,0.348637 -0.32373,0.547851 -0.07748,0.199223 -0.116214,0.415043 -0.116211,0.647461 m 1.70166,-7.188476 c -0.182622,10e-6 -0.354171,0.02768 -0.514648,0.08301 -0.154952,0.05535 -0.290532,0.13559 -0.406739,0.240723 -0.11068,0.105153 -0.199222,0.235199 -0.265625,0.390137 -0.06641,0.154957 -0.09961,0.329274 -0.09961,0.522949 -3e-6,0.232431 0.0332,0.434416 0.09961,0.605957 0.07194,0.166024 0.166012,0.315438 0.282227,0
 .448242 0.121741,0.127287 0.260087,0.243498 0.415039,0.348633 0.160477,0.09962 0.32926,0.199226 0.506348,0.298828 0.171544,-0.08853 0.334793,-0.185376 0.489746,-0.290527 0.154942,-0.105135 0.290522,-0.224113 0.406738,-0.356934 0.121739,-0.138338 0.218581,-0.293286 0.290527,-0.464843 0.07193,-0.171541 0.107904,-0.367993 0.10791,-0.589356 -6e-6,-0.193675 -0.03321,-0.367992 -0.09961,-0.522949 -0.06641,-0.154938 -0.15772,-0.284984 -0.273926,-0.390137 -0.116216,-0.105133 -0.254562,-0.185374 -0.415039,-0.240723 -0.160487,-0.05533 -0.334803,-0.083 -0.522949,-0.08301"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/29.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/29.png
new file mode 100644
index 0000000..dbbca1b
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/29.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/29.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/29.svg
new file mode 100644
index 0000000..507dd44
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/29.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 15.257917,22.008438 -8.143066,0 0,-1.784668 2.8554687,-3.07959 c 0.3596963,-0.387364 0.6861933,-0.744297 0.9794923,-1.0708 0.293289,-0.326492 0.54508,-0.644688 0.755371,-0.95459 0.210281,-0.309889 0.37353,-0.625318 0.489746,-0.946289 0.116205,-0.320956 0.174311,-0.666821 0.174317,-1.037598 -6e-6,-0.409496 -0.124518,-0.727692 -0.373536,-0.95459 -0.243495,-0.226878 -0.572759,-0.340322 -0.987793,-0.340332 -0.437178,10e-6 -0.857751,0.10792 -1.2617183,0.323731 C 9.3422244,12.379541 8.918885,12.68667 8.4761791,13.085098 L 7.0816479,11.433243 C 7.3306704,11.206366 7.5907613,10.990545 7.8619213,10.785782 8.1330785,10.575507 8.4319063,10.390123 8.7584057,10.22963 9.0849004,10.06916 9.4446006,9.9418812 9.8375072,9.8477936 10.230407,9.7481965 10.670348,9.6983918 11.157331,9.6983795 c 0.58105,1.23e-5 1.101232,0.080253 1.560547,0.2407227 0.464837,0.1604938 0.860508,0.3901488 1.187012,0.6889648 0.32649,0.293305 0.575513,0.650239 0.74707,1.070801 0.177075,0.420583 0.265617,0.89
 3727 0.265625,1.419433 -8e-6,0.47592 -0.08302,0.932463 -0.249023,1.369629 -0.166024,0.431648 -0.392912,0.857754 -0.680664,1.278321 -0.287768,0.415044 -0.622566,0.830083 -1.004395,1.245117 -0.376308,0.40951 -0.780279,0.827315 -1.211914,1.253418 l -1.460937,1.469238 0,0.116211 4.947265,0 0,2.158203"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 24.554792,15.052383 c -8e-6,0.581061 -0.03321,1.162116 -0.09961,1.743164 -0.06088,0.575526 -0.174325,1.126144 -0.340332,1.651856 -0.16049,0.525719 -0.381844,1.018232 -0.664063,1.477539 -0.2767,0.453778 -0.630866,0.846681 -1.0625,1.178711 -0.426112,0.332032 -0.94076,0.59489 -1.543945,0.788574 -0.597661,0.188151 -1.300459,0.282227 -2.108398,0.282227 -0.116214,0 -0.243493,-0.0028 -0.381836,-0.0083 -0.138349,-0.0055 -0.279462,-0.01384 -0.42334,-0.0249 -0.138348,-0.0055 -0.273928,-0.0166 -0.406738,-0.0332 -0.132814,-0.01107 -0.249025,-0.02767 -0.348633,-0.0498 l 0,-2.058594 c 0.204751,0.05534 0.423338,0.09961 0.655762,0.132813 0.237953,0.02767 0.478675,0.04151 0.722168,0.0415 0.747066,2e-6 1.361324,-0.09131 1.842773,-0.273925 0.48144,-0.188149 0.863276,-0.44824 1.145508,-0.780274 0.28222,-0.337562 0.481439,-0.738766 0.597656,-1.203613 0.121738,-0.464839 0.196445,-0.97672 0.224121,-1.535645 l -0.10791,0 c -0.110683,0.199225 -0.243496,0.384609 -0.398438,0.556153 -0.1549
 53,0.171554 -0.33757,0.320968 -0.547851,0.448242 -0.210292,0.127283 -0.448247,0.226892 -0.713867,0.298828 -0.26563,0.07194 -0.561691,0.107914 -0.888184,0.10791 -0.525719,4e-6 -0.998863,-0.08577 -1.419433,-0.257324 -0.420575,-0.171545 -0.777509,-0.420568 -1.070801,-0.74707 -0.287762,-0.326492 -0.509116,-0.727696 -0.664063,-1.203614 -0.154948,-0.475904 -0.232422,-1.020988 -0.232422,-1.635253 0,-0.65852 0.09131,-1.247875 0.273926,-1.768067 0.18815,-0.520172 0.453775,-0.960113 0.796875,-1.319824 0.343097,-0.365223 0.758136,-0.644682 1.245117,-0.838379 0.49251,-0.1936727 1.043128,-0.2905151 1.651856,-0.2905274 0.597651,1.23e-5 1.15657,0.1079224 1.676758,0.3237304 0.520175,0.210298 0.971184,0.534028 1.353027,0.971192 0.381828,0.437185 0.683423,0.990569 0.904785,1.660156 0.221346,0.669605 0.332023,1.458178 0.332031,2.365722 m -4.216796,-3.262207 c -0.226893,1.1e-5 -0.434412,0.04151 -0.622559,0.124512 -0.188155,0.08302 -0.351403,0.213063 -0.489746,0.390137 -0.132816,0.171559 -0.2379
 59,0.392913 -0.31543,0.664062 -0.07194,0.265634 -0.107913,0.581063 -0.10791,0.946289 -3e-6,0.586596 0.124509,1.05144 0.373535,1.394532 0.24902,0.343105 0.625322,0.514654 1.128906,0.514648 0.254553,6e-6 0.486975,-0.0498 0.697266,-0.149414 0.210281,-0.0996 0.390131,-0.229648 0.539551,-0.390137 0.149408,-0.160475 0.262852,-0.340325 0.340332,-0.53955 0.083,-0.199212 0.124505,-0.401197 0.124512,-0.605958 -7e-6,-0.282218 -0.03598,-0.561677 -0.107911,-0.838378 -0.06641,-0.282218 -0.171555,-0.534008 -0.315429,-0.755372 -0.138352,-0.226878 -0.312669,-0.409495 -0.52295,-0.547851 -0.204757,-0.138336 -0.44548,-0.207509 -0.722167,-0.20752"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/3.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/3.png
new file mode 100644
index 0000000..4febe43
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/3.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/3.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/3.svg
new file mode 100644
index 0000000..5e87e1f
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/3.svg
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 19.422316,12.587051 c -9e-6,0.420582 -0.06918,0.799651 -0.20752,1.137207 -0.13282,0.33204 -0.318204,0.625334 -0.556152,0.879883 -0.23243,0.249031 -0.509122,0.459317 -0.830078,0.63086 -0.315437,0.166022 -0.658535,0.2933 -1.029297,0.381836 l 0,0.0498 c 0.979485,0.121751 1.721021,0.420579 2.224609,0.896485 0.503572,0.470382 0.755362,1.106775 0.755371,1.909179 -9e-6,0.531253 -0.09685,1.023766 -0.290527,1.477539 -0.188159,0.448244 -0.481453,0.83838 -0.879883,1.170411 -0.392911,0.332031 -0.890957,0.592122 -1.494141,0.780273 -0.597661,0.182617 -1.303227,0.273926 -2.116699,0.273926 -0.652998,0 -1.267255,-0.05534 -1.842773,-0.166016 -0.575523,-0.105143 -1.112306,-0.268392 -1.610352,-0.489746 l 0,-2.183105 c 0.249023,0.132815 0.511881,0.249025 0.788574,0.348632 0.276692,0.09961 0.553384,0.185387 0.830079,0.257325 0.27669,0.06641 0.547848,0.116212 0.813476,0.149414 0.271156,0.0332 0.525713,0.04981 0.763672,0.0498 0.475907,2e-6 0.871577,-0.04427 1.187012,-0.132812 0.315424,-
 0.08854 0.567214,-0.213051 0.755371,-0.373535 0.188145,-0.16048 0.320957,-0.351397 0.398437,-0.572754 0.083,-0.226885 0.124506,-0.473141 0.124512,-0.73877 -6e-6,-0.249019 -0.05258,-0.47314 -0.157715,-0.672363 -0.09962,-0.204748 -0.265631,-0.376297 -0.498047,-0.514648 -0.226893,-0.143876 -0.525721,-0.254553 -0.896484,-0.332032 -0.370773,-0.07747 -0.827315,-0.116205 -1.369629,-0.116211 l -0.863281,0 0,-1.801269 0.846679,0 c 0.509111,7e-6 0.932451,-0.04426 1.27002,-0.132813 0.33756,-0.09407 0.605952,-0.218579 0.805176,-0.373535 0.204747,-0.160474 0.348627,-0.345858 0.43164,-0.556152 0.083,-0.210278 0.124506,-0.434399 0.124512,-0.672363 -6e-6,-0.431632 -0.135585,-0.769197 -0.406738,-1.012696 -0.26563,-0.243479 -0.68897,-0.365224 -1.27002,-0.365234 -0.265629,10e-6 -0.514652,0.02768 -0.74707,0.08301 -0.226891,0.04981 -0.439944,0.116221 -0.63916,0.199218 -0.193688,0.07748 -0.373538,0.166026 -0.539551,0.265625 -0.160484,0.09409 -0.307131,0.188161 -0.439941,0.282227 l -1.294922,-1.70
 9961 c 0.232421,-0.171538 0.484211,-0.329253 0.755371,-0.473145 0.276691,-0.143868 0.575519,-0.26838 0.896484,-0.373535 0.320961,-0.1106647 0.666827,-0.1964393 1.037598,-0.2573239 0.370765,-0.06086 0.766435,-0.091296 1.187012,-0.091309 0.597651,1.23e-5 1.139968,0.066419 1.626953,0.1992188 0.492506,0.1272911 0.913079,0.3154421 1.261718,0.5644531 0.348626,0.243501 0.617017,0.545096 0.805176,0.904786 0.193677,0.354177 0.290519,0.760914 0.290528,1.220214"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/30.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/30.png
new file mode 100644
index 0000000..f4ffb14
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/30.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/30.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/30.svg
new file mode 100644
index 0000000..434e663
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/30.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 14.784773,12.587051 c -8e-6,0.420582 -0.06918,0.799651 -0.20752,1.137207 -0.13282,0.33204 -0.318204,0.625334 -0.556152,0.879883 -0.232429,0.249031 -0.509122,0.459317 -0.830078,0.63086 -0.315436,0.166022 -0.658535,0.2933 -1.029297,0.381836 l 0,0.0498 c 0.979485,0.121751 1.721021,0.420579 2.224609,0.896485 0.503573,0.470382 0.755363,1.106775 0.755371,1.909179 -8e-6,0.531253 -0.09685,1.023766 -0.290527,1.477539 -0.188159,0.448244 -0.481453,0.83838 -0.879883,1.170411 -0.39291,0.332031 -0.890957,0.592122 -1.49414,0.780273 -0.597662,0.182617 -1.303228,0.273926 -2.1167,0.273926 -0.6529976,0 -1.2672548,-0.05534 -1.842773,-0.166016 C 7.9421607,21.903295 7.4053774,21.740046 6.9073315,21.518692 l 0,-2.183105 c 0.2490227,0.132815 0.5118805,0.249025 0.7885742,0.348632 0.2766912,0.09961 0.5533836,0.185387 0.8300781,0.257325 0.2766904,0.06641 0.5478489,0.116212 0.8134766,0.149414 0.2711557,0.0332 0.5257127,0.04981 0.7636716,0.0498 0.475908,2e-6 0.871578,-0.04427 1.187012,-0.132
 812 0.315424,-0.08854 0.567215,-0.213051 0.755371,-0.373535 0.188145,-0.16048 0.320958,-0.351397 0.398438,-0.572754 0.083,-0.226885 0.124505,-0.473141 0.124511,-0.73877 -6e-6,-0.249019 -0.05258,-0.47314 -0.157715,-0.672363 -0.09962,-0.204748 -0.26563,-0.376297 -0.498046,-0.514648 C 11.685809,16.992 11.386981,16.881323 11.016218,16.803844 10.645446,16.726374 10.188903,16.687639 9.6465893,16.687633 l -0.8632813,0 0,-1.801269 0.8466797,0 c 0.5091113,7e-6 0.9324503,-0.04426 1.2700193,-0.132813 0.337561,-0.09407 0.605952,-0.218579 0.805176,-0.373535 0.204747,-0.160474 0.348627,-0.345858 0.431641,-0.556152 0.083,-0.210278 0.124506,-0.434399 0.124511,-0.672363 -5e-6,-0.431632 -0.135585,-0.769197 -0.406738,-1.012696 -0.26563,-0.243479 -0.688969,-0.365224 -1.270019,-0.365234 -0.265629,10e-6 -0.514653,0.02768 -0.7470708,0.08301 -0.2268911,0.04981 -0.4399443,0.116221 -0.6391601,0.199218 -0.1936875,0.07748 -0.3735376,0.166026 -0.5395508,0.265625 -0.1604838,0.09409 -0.3071308,0.188161 -0
 .4399414,0.282227 L 6.923933,10.893692 c 0.2324212,-0.171538 0.4842113,-0.329253 0.7553711,-0.473145 0.2766912,-0.143868 0.575519,-0.26838 0.8964844,-0.373535 0.3209611,-0.1106647 0.6668266,-0.1964393 1.0375977,-0.2573239 0.3707646,-0.06086 0.7664348,-0.091296 1.1870118,-0.091309 0.597651,1.23e-5 1.139968,0.066419 1.626953,0.1992188 0.492507,0.1272911 0.913079,0.3154421 1.261719,0.5644531 0.348625,0.243501 0.617017,0.545096 0.805176,0.904786 0.193676,0.354177 0.290519,0.760914 0.290527,1.220214"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 24.6378,15.940567 c -9e-6,0.979497 -0.07748,1.853845 -0.232422,2.623047 -0.149422,0.769208 -0.392912,1.422202 -0.730468,1.958984 -0.332039,0.536785 -0.763679,0.94629 -1.294922,1.228516 -0.525722,0.282226 -1.162115,0.42334 -1.90918,0.42334 -0.702803,0 -1.314294,-0.141114 -1.834473,-0.42334 -0.520184,-0.282226 -0.951824,-0.691731 -1.294922,-1.228516 -0.3431,-0.536782 -0.600424,-1.189776 -0.771972,-1.958984 -0.166016,-0.769202 -0.249024,-1.64355 -0.249024,-2.623047 0,-0.979485 0.07471,-1.8566 0.224121,-2.631348 0.154948,-0.77473 0.398437,-1.430491 0.730469,-1.967285 0.33203,-0.536772 0.760903,-0.946277 1.286621,-1.228515 0.525713,-0.2877487 1.162106,-0.4316287 1.90918,-0.431641 0.69726,1.23e-5 1.305984,0.1411254 1.826172,0.42334 0.520175,0.282238 0.954582,0.691743 1.303223,1.228515 0.348624,0.536794 0.608715,1.192555 0.780273,1.967286 0.171541,0.774747 0.257315,1.654629 0.257324,2.639648 m -5.760742,0 c -3e-6,1.383468 0.118975,2.423832 0.356934,3.121094 0.237952,0.6
 97268 0.650223,1.0459 1.236816,1.045898 0.575516,2e-6 0.987787,-0.345863 1.236816,-1.037597 0.254552,-0.691729 0.38183,-1.734859 0.381836,-3.129395 -6e-6,-1.38899 -0.127284,-2.43212 -0.381836,-3.129395 -0.249029,-0.702789 -0.6613,-1.054188 -1.236816,-1.054199 -0.293299,1.1e-5 -0.542322,0.08855 -0.74707,0.265625 -0.199223,0.177093 -0.362471,0.439951 -0.489746,0.788574 -0.127282,0.348642 -0.218591,0.785816 -0.273926,1.311524 -0.05534,0.52019 -0.08301,1.126146 -0.08301,1.817871"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/31.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/31.png
new file mode 100644
index 0000000..0b29e87
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/31.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/31.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/31.svg
new file mode 100644
index 0000000..08c3f2d
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/31.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 14.784773,12.587051 c -8e-6,0.420582 -0.06918,0.799651 -0.20752,1.137207 -0.13282,0.33204 -0.318204,0.625334 -0.556152,0.879883 -0.232429,0.249031 -0.509122,0.459317 -0.830078,0.63086 -0.315436,0.166022 -0.658535,0.2933 -1.029297,0.381836 l 0,0.0498 c 0.979485,0.121751 1.721021,0.420579 2.224609,0.896485 0.503573,0.470382 0.755363,1.106775 0.755371,1.909179 -8e-6,0.531253 -0.09685,1.023766 -0.290527,1.477539 -0.188159,0.448244 -0.481453,0.83838 -0.879883,1.170411 -0.39291,0.332031 -0.890957,0.592122 -1.49414,0.780273 -0.597662,0.182617 -1.303228,0.273926 -2.1167,0.273926 -0.6529976,0 -1.2672548,-0.05534 -1.842773,-0.166016 C 7.9421607,21.903295 7.4053774,21.740046 6.9073315,21.518692 l 0,-2.183105 c 0.2490227,0.132815 0.5118805,0.249025 0.7885742,0.348632 0.2766912,0.09961 0.5533836,0.185387 0.8300781,0.257325 0.2766904,0.06641 0.5478489,0.116212 0.8134766,0.149414 0.2711557,0.0332 0.5257127,0.04981 0.7636716,0.0498 0.475908,2e-6 0.871578,-0.04427 1.187012,-0.132
 812 0.315424,-0.08854 0.567215,-0.213051 0.755371,-0.373535 0.188145,-0.16048 0.320958,-0.351397 0.398438,-0.572754 0.083,-0.226885 0.124505,-0.473141 0.124511,-0.73877 -6e-6,-0.249019 -0.05258,-0.47314 -0.157715,-0.672363 -0.09962,-0.204748 -0.26563,-0.376297 -0.498046,-0.514648 C 11.685809,16.992 11.386981,16.881323 11.016218,16.803844 10.645446,16.726374 10.188903,16.687639 9.6465893,16.687633 l -0.8632813,0 0,-1.801269 0.8466797,0 c 0.5091113,7e-6 0.9324503,-0.04426 1.2700193,-0.132813 0.337561,-0.09407 0.605952,-0.218579 0.805176,-0.373535 0.204747,-0.160474 0.348627,-0.345858 0.431641,-0.556152 0.083,-0.210278 0.124506,-0.434399 0.124511,-0.672363 -5e-6,-0.431632 -0.135585,-0.769197 -0.406738,-1.012696 -0.26563,-0.243479 -0.688969,-0.365224 -1.270019,-0.365234 -0.265629,10e-6 -0.514653,0.02768 -0.7470708,0.08301 -0.2268911,0.04981 -0.4399443,0.116221 -0.6391601,0.199218 -0.1936875,0.07748 -0.3735376,0.166026 -0.5395508,0.265625 -0.1604838,0.09409 -0.3071308,0.188161 -0
 .4399414,0.282227 L 6.923933,10.893692 c 0.2324212,-0.171538 0.4842113,-0.329253 0.7553711,-0.473145 0.2766912,-0.143868 0.575519,-0.26838 0.8964844,-0.373535 0.3209611,-0.1106647 0.6668266,-0.1964393 1.0375977,-0.2573239 0.3707646,-0.06086 0.7664348,-0.091296 1.1870118,-0.091309 0.597651,1.23e-5 1.139968,0.066419 1.626953,0.1992188 0.492507,0.1272911 0.913079,0.3154421 1.261719,0.5644531 0.348625,0.243501 0.617017,0.545096 0.805176,0.904786 0.193676,0.354177 0.290519,0.760914 0.290527,1.220214"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 22.579206,22.008438 -2.564941,0 0,-7.022461 c -4e-6,-0.143873 -4e-6,-0.315422 0,-0.514648 0.0055,-0.204745 0.01106,-0.415031 0.0166,-0.63086 0.01106,-0.221345 0.01936,-0.442699 0.0249,-0.664062 0.01106,-0.221345 0.01936,-0.423331 0.0249,-0.605957 -0.02767,0.03321 -0.07471,0.08302 -0.141113,0.149414 -0.06641,0.06642 -0.141117,0.141122 -0.224121,0.224121 -0.08301,0.07748 -0.168786,0.157724 -0.257324,0.240723 -0.08855,0.08302 -0.17432,0.157723 -0.257325,0.224121 l -1.394531,1.120605 -1.245117,-1.543945 3.909668,-3.1127931 2.108398,0 0,12.1357421"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/32.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/32.png
new file mode 100644
index 0000000..a4740a3
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/32.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/32.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/32.svg
new file mode 100644
index 0000000..aa099c3
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/32.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 14.784773,12.587051 c -8e-6,0.420582 -0.06918,0.799651 -0.20752,1.137207 -0.13282,0.33204 -0.318204,0.625334 -0.556152,0.879883 -0.232429,0.249031 -0.509122,0.459317 -0.830078,0.63086 -0.315436,0.166022 -0.658535,0.2933 -1.029297,0.381836 l 0,0.0498 c 0.979485,0.121751 1.721021,0.420579 2.224609,0.896485 0.503573,0.470382 0.755363,1.106775 0.755371,1.909179 -8e-6,0.531253 -0.09685,1.023766 -0.290527,1.477539 -0.188159,0.448244 -0.481453,0.83838 -0.879883,1.170411 -0.39291,0.332031 -0.890957,0.592122 -1.49414,0.780273 -0.597662,0.182617 -1.303228,0.273926 -2.1167,0.273926 -0.6529976,0 -1.2672548,-0.05534 -1.842773,-0.166016 C 7.9421607,21.903295 7.4053774,21.740046 6.9073315,21.518692 l 0,-2.183105 c 0.2490227,0.132815 0.5118805,0.249025 0.7885742,0.348632 0.2766912,0.09961 0.5533836,0.185387 0.8300781,0.257325 0.2766904,0.06641 0.5478489,0.116212 0.8134766,0.149414 0.2711557,0.0332 0.5257127,0.04981 0.7636716,0.0498 0.475908,2e-6 0.871578,-0.04427 1.187012,-0.132
 812 0.315424,-0.08854 0.567215,-0.213051 0.755371,-0.373535 0.188145,-0.16048 0.320958,-0.351397 0.398438,-0.572754 0.083,-0.226885 0.124505,-0.473141 0.124511,-0.73877 -6e-6,-0.249019 -0.05258,-0.47314 -0.157715,-0.672363 -0.09962,-0.204748 -0.26563,-0.376297 -0.498046,-0.514648 C 11.685809,16.992 11.386981,16.881323 11.016218,16.803844 10.645446,16.726374 10.188903,16.687639 9.6465893,16.687633 l -0.8632813,0 0,-1.801269 0.8466797,0 c 0.5091113,7e-6 0.9324503,-0.04426 1.2700193,-0.132813 0.337561,-0.09407 0.605952,-0.218579 0.805176,-0.373535 0.204747,-0.160474 0.348627,-0.345858 0.431641,-0.556152 0.083,-0.210278 0.124506,-0.434399 0.124511,-0.672363 -5e-6,-0.431632 -0.135585,-0.769197 -0.406738,-1.012696 -0.26563,-0.243479 -0.688969,-0.365224 -1.270019,-0.365234 -0.265629,10e-6 -0.514653,0.02768 -0.7470708,0.08301 -0.2268911,0.04981 -0.4399443,0.116221 -0.6391601,0.199218 -0.1936875,0.07748 -0.3735376,0.166026 -0.5395508,0.265625 -0.1604838,0.09409 -0.3071308,0.188161 -0
 .4399414,0.282227 L 6.923933,10.893692 c 0.2324212,-0.171538 0.4842113,-0.329253 0.7553711,-0.473145 0.2766912,-0.143868 0.575519,-0.26838 0.8964844,-0.373535 0.3209611,-0.1106647 0.6668266,-0.1964393 1.0375977,-0.2573239 0.3707646,-0.06086 0.7664348,-0.091296 1.1870118,-0.091309 0.597651,1.23e-5 1.139968,0.066419 1.626953,0.1992188 0.492507,0.1272911 0.913079,0.3154421 1.261719,0.5644531 0.348625,0.243501 0.617017,0.545096 0.805176,0.904786 0.193676,0.354177 0.290519,0.760914 0.290527,1.220214"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 24.621199,22.008438 -8.143067,0 0,-1.784668 2.855469,-3.07959 c 0.359697,-0.387364 0.686194,-0.744297 0.979492,-1.0708 0.29329,-0.326492 0.54508,-0.644688 0.755371,-0.95459 0.210281,-0.309889 0.37353,-0.625318 0.489746,-0.946289 0.116205,-0.320956 0.174311,-0.666821 0.174317,-1.037598 -6e-6,-0.409496 -0.124518,-0.727692 -0.373535,-0.95459 -0.243495,-0.226878 -0.572759,-0.340322 -0.987793,-0.340332 -0.437179,10e-6 -0.857751,0.10792 -1.261719,0.323731 -0.403974,0.215829 -0.827314,0.522958 -1.27002,0.921386 l -1.394531,-1.651855 c 0.249023,-0.226877 0.509114,-0.442698 0.780274,-0.647461 0.271157,-0.210275 0.569985,-0.395659 0.896484,-0.556152 0.326495,-0.16047 0.686195,-0.2877488 1.079101,-0.3818364 0.3929,-0.099597 0.832841,-0.1494018 1.319825,-0.1494141 0.581049,1.23e-5 1.101231,0.080253 1.560547,0.2407227 0.464837,0.1604938 0.860507,0.3901488 1.187011,0.6889648 0.32649,0.293305 0.575513,0.650239 0.747071,1.070801 0.177075,0.420583 0.265616,0.893727 0.265625,1.419
 433 -9e-6,0.47592 -0.08302,0.932463 -0.249024,1.369629 -0.166024,0.431648 -0.392911,0.857754 -0.680664,1.278321 -0.287768,0.415044 -0.622565,0.830083 -1.004394,1.245117 -0.376309,0.40951 -0.78028,0.827315 -1.211914,1.253418 l -1.460938,1.469238 0,0.116211 4.947266,0 0,2.158203"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/33.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/33.png
new file mode 100644
index 0000000..f23ccea
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/33.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/33.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/33.svg
new file mode 100644
index 0000000..fce979c
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/33.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 14.784773,12.587051 c -8e-6,0.420582 -0.06918,0.799651 -0.20752,1.137207 -0.13282,0.33204 -0.318204,0.625334 -0.556152,0.879883 -0.232429,0.249031 -0.509122,0.459317 -0.830078,0.63086 -0.315436,0.166022 -0.658535,0.2933 -1.029297,0.381836 l 0,0.0498 c 0.979485,0.121751 1.721021,0.420579 2.224609,0.896485 0.503573,0.470382 0.755363,1.106775 0.755371,1.909179 -8e-6,0.531253 -0.09685,1.023766 -0.290527,1.477539 -0.188159,0.448244 -0.481453,0.83838 -0.879883,1.170411 -0.39291,0.332031 -0.890957,0.592122 -1.49414,0.780273 -0.597662,0.182617 -1.303228,0.273926 -2.1167,0.273926 -0.6529976,0 -1.2672548,-0.05534 -1.842773,-0.166016 C 7.9421607,21.903295 7.4053774,21.740046 6.9073315,21.518692 l 0,-2.183105 c 0.2490227,0.132815 0.5118805,0.249025 0.7885742,0.348632 0.2766912,0.09961 0.5533836,0.185387 0.8300781,0.257325 0.2766904,0.06641 0.5478489,0.116212 0.8134766,0.149414 0.2711557,0.0332 0.5257127,0.04981 0.7636716,0.0498 0.475908,2e-6 0.871578,-0.04427 1.187012,-0.132
 812 0.315424,-0.08854 0.567215,-0.213051 0.755371,-0.373535 0.188145,-0.16048 0.320958,-0.351397 0.398438,-0.572754 0.083,-0.226885 0.124505,-0.473141 0.124511,-0.73877 -6e-6,-0.249019 -0.05258,-0.47314 -0.157715,-0.672363 -0.09962,-0.204748 -0.26563,-0.376297 -0.498046,-0.514648 C 11.685809,16.992 11.386981,16.881323 11.016218,16.803844 10.645446,16.726374 10.188903,16.687639 9.6465893,16.687633 l -0.8632813,0 0,-1.801269 0.8466797,0 c 0.5091113,7e-6 0.9324503,-0.04426 1.2700193,-0.132813 0.337561,-0.09407 0.605952,-0.218579 0.805176,-0.373535 0.204747,-0.160474 0.348627,-0.345858 0.431641,-0.556152 0.083,-0.210278 0.124506,-0.434399 0.124511,-0.672363 -5e-6,-0.431632 -0.135585,-0.769197 -0.406738,-1.012696 -0.26563,-0.243479 -0.688969,-0.365224 -1.270019,-0.365234 -0.265629,10e-6 -0.514653,0.02768 -0.7470708,0.08301 -0.2268911,0.04981 -0.4399443,0.116221 -0.6391601,0.199218 -0.1936875,0.07748 -0.3735376,0.166026 -0.5395508,0.265625 -0.1604838,0.09409 -0.3071308,0.188161 -0
 .4399414,0.282227 L 6.923933,10.893692 c 0.2324212,-0.171538 0.4842113,-0.329253 0.7553711,-0.473145 0.2766912,-0.143868 0.575519,-0.26838 0.8964844,-0.373535 0.3209611,-0.1106647 0.6668266,-0.1964393 1.0375977,-0.2573239 0.3707646,-0.06086 0.7664348,-0.091296 1.1870118,-0.091309 0.597651,1.23e-5 1.139968,0.066419 1.626953,0.1992188 0.492507,0.1272911 0.913079,0.3154421 1.261719,0.5644531 0.348625,0.243501 0.617017,0.545096 0.805176,0.904786 0.193676,0.354177 0.290519,0.760914 0.290527,1.220214"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 24.148054,12.587051 c -8e-6,0.420582 -0.06918,0.799651 -0.207519,1.137207 -0.132821,0.33204 -0.318205,0.625334 -0.556153,0.879883 -0.232429,0.249031 -0.509121,0.459317 -0.830078,0.63086 -0.315436,0.166022 -0.658535,0.2933 -1.029297,0.381836 l 0,0.0498 c 0.979486,0.121751 1.721021,0.420579 2.22461,0.896485 0.503572,0.470382 0.755362,1.106775 0.755371,1.909179 -9e-6,0.531253 -0.09685,1.023766 -0.290528,1.477539 -0.188159,0.448244 -0.481453,0.83838 -0.879882,1.170411 -0.392911,0.332031 -0.890958,0.592122 -1.494141,0.780273 -0.597662,0.182617 -1.303227,0.273926 -2.116699,0.273926 -0.652998,0 -1.267256,-0.05534 -1.842774,-0.166016 -0.575522,-0.105143 -1.112305,-0.268392 -1.610351,-0.489746 l 0,-2.183105 c 0.249022,0.132815 0.51188,0.249025 0.788574,0.348632 0.276691,0.09961 0.553384,0.185387 0.830078,0.257325 0.27669,0.06641 0.547849,0.116212 0.813477,0.149414 0.271155,0.0332 0.525712,0.04981 0.763671,0.0498 0.475908,2e-6 0.871578,-0.04427 1.187012,-0.132812 0.315425,
 -0.08854 0.567215,-0.213051 0.755371,-0.373535 0.188146,-0.16048 0.320958,-0.351397 0.398438,-0.572754 0.083,-0.226885 0.124505,-0.473141 0.124512,-0.73877 -7e-6,-0.249019 -0.05258,-0.47314 -0.157715,-0.672363 -0.09962,-0.20474 -0.265631,-0.376289 -0.498047,-0.51464 -0.226893,-0.143876 -0.525721,-0.254553 -0.896485,-0.332032 -0.370772,-0.07747 -0.827315,-0.116205 -1.369628,-0.116211 l -0.863282,0 0,-1.801269 0.84668,0 c 0.509111,7e-6 0.93245,-0.04426 1.270019,-0.132813 0.337561,-0.09407 0.605952,-0.218579 0.805176,-0.373535 0.204747,-0.160474 0.348627,-0.345858 0.431641,-0.556152 0.083,-0.210278 0.124506,-0.434399 0.124512,-0.672363 -6e-6,-0.431632 -0.135585,-0.769197 -0.406739,-1.012696 -0.26563,-0.243479 -0.688969,-0.365224 -1.270019,-0.365234 -0.265629,1e-5 -0.514652,0.02768 -0.747071,0.08301 -0.226891,0.04981 -0.439944,0.116221 -0.63916,0.199218 -0.193687,0.07748 -0.373537,0.166026 -0.53955,0.265625 -0.160484,0.09409 -0.307131,0.188161 -0.439942,0.282227 l -1.294922,-1.7
 09961 c 0.232421,-0.171538 0.484212,-0.329253 0.755371,-0.473145 0.276692,-0.143868 0.575519,-0.26838 0.896485,-0.373535 0.320961,-0.1106647 0.666826,-0.1964393 1.037597,-0.2573239 0.370765,-0.06086 0.766435,-0.091296 1.187012,-0.091309 0.597651,1.23e-5 1.139969,0.066419 1.626953,0.1992188 0.492507,0.1272911 0.913079,0.3154421 1.261719,0.5644531 0.348625,0.243501 0.617017,0.545096 0.805176,0.904786 0.193676,0.354177 0.290519,0.760914 0.290527,1.220214"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/34.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/34.png
new file mode 100644
index 0000000..7e2ab31
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/34.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/34.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/34.svg
new file mode 100644
index 0000000..c67f8ec
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/34.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 14.784773,12.587051 c -8e-6,0.420582 -0.06918,0.799651 -0.20752,1.137207 -0.13282,0.33204 -0.318204,0.625334 -0.556152,0.879883 -0.232429,0.249031 -0.509122,0.459317 -0.830078,0.63086 -0.315436,0.166022 -0.658535,0.2933 -1.029297,0.381836 l 0,0.0498 c 0.979485,0.121751 1.721021,0.420579 2.224609,0.896485 0.503573,0.470382 0.755363,1.106775 0.755371,1.909179 -8e-6,0.531253 -0.09685,1.023766 -0.290527,1.477539 -0.188159,0.448244 -0.481453,0.83838 -0.879883,1.170411 -0.39291,0.332031 -0.890957,0.592122 -1.49414,0.780273 -0.597662,0.182617 -1.303228,0.273926 -2.1167,0.273926 -0.6529976,0 -1.2672548,-0.05534 -1.842773,-0.166016 C 7.9421607,21.903295 7.4053774,21.740046 6.9073315,21.518692 l 0,-2.183105 c 0.2490227,0.132815 0.5118805,0.249025 0.7885742,0.348632 0.2766912,0.09961 0.5533836,0.185387 0.8300781,0.257325 0.2766904,0.06641 0.5478489,0.116212 0.8134766,0.149414 0.2711557,0.0332 0.5257127,0.04981 0.7636716,0.0498 0.475908,2e-6 0.871578,-0.04427 1.187012,-0.132
 812 0.315424,-0.08854 0.567215,-0.213051 0.755371,-0.373535 0.188145,-0.16048 0.320958,-0.351397 0.398438,-0.572754 0.083,-0.226885 0.124505,-0.473141 0.124511,-0.73877 -6e-6,-0.249019 -0.05258,-0.47314 -0.157715,-0.672363 -0.09962,-0.204748 -0.26563,-0.376297 -0.498046,-0.514648 C 11.685809,16.992 11.386981,16.881323 11.016218,16.803844 10.645446,16.726374 10.188903,16.687639 9.6465893,16.687633 l -0.8632813,0 0,-1.801269 0.8466797,0 c 0.5091113,7e-6 0.9324503,-0.04426 1.2700193,-0.132813 0.337561,-0.09407 0.605952,-0.218579 0.805176,-0.373535 0.204747,-0.160474 0.348627,-0.345858 0.431641,-0.556152 0.083,-0.210278 0.124506,-0.434399 0.124511,-0.672363 -5e-6,-0.431632 -0.135585,-0.769197 -0.406738,-1.012696 -0.26563,-0.243479 -0.688969,-0.365224 -1.270019,-0.365234 -0.265629,10e-6 -0.514653,0.02768 -0.7470708,0.08301 -0.2268911,0.04981 -0.4399443,0.116221 -0.6391601,0.199218 -0.1936875,0.07748 -0.3735376,0.166026 -0.5395508,0.265625 -0.1604838,0.09409 -0.3071308,0.188161 -0
 .4399414,0.282227 L 6.923933,10.893692 c 0.2324212,-0.171538 0.4842113,-0.329253 0.7553711,-0.473145 0.2766912,-0.143868 0.575519,-0.26838 0.8964844,-0.373535 0.3209611,-0.1106647 0.6668266,-0.1964393 1.0375977,-0.2573239 0.3707646,-0.06086 0.7664348,-0.091296 1.1870118,-0.091309 0.597651,1.23e-5 1.139968,0.066419 1.626953,0.1992188 0.492507,0.1272911 0.913079,0.3154421 1.261719,0.5644531 0.348625,0.243501 0.617017,0.545096 0.805176,0.904786 0.193676,0.354177 0.290519,0.760914 0.290527,1.220214"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 24.803816,19.493301 -1.460938,0 0,2.515137 -2.498535,0 0,-2.515137 -5.013672,0 0,-1.784668 5.154785,-7.8359371 2.357422,0 0,7.6284181 1.460938,0 0,1.992187 m -3.959473,-1.992187 0,-2.058594 c -5e-6,-0.07193 -5e-6,-0.17431 0,-0.307129 0.0055,-0.138339 0.01106,-0.293287 0.0166,-0.464844 0.0055,-0.171541 0.01106,-0.348625 0.0166,-0.53125 0.01106,-0.182609 0.01936,-0.356925 0.0249,-0.522949 0.01106,-0.166007 0.01936,-0.309887 0.0249,-0.43164 0.01106,-0.12727 0.01936,-0.218579 0.0249,-0.273926 l -0.07471,0 c -0.09961,0.232431 -0.213058,0.478687 -0.340332,0.738769 -0.121749,0.2601 -0.262862,0.520191 -0.42334,0.780274 l -2.02539,3.071289 2.755859,0"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/35.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/35.png
new file mode 100644
index 0000000..02118e3
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/35.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/35.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/35.svg
new file mode 100644
index 0000000..da7780a
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/35.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 14.784773,12.587051 c -8e-6,0.420582 -0.06918,0.799651 -0.20752,1.137207 -0.13282,0.33204 -0.318204,0.625334 -0.556152,0.879883 -0.232429,0.249031 -0.509122,0.459317 -0.830078,0.63086 -0.315436,0.166022 -0.658535,0.2933 -1.029297,0.381836 l 0,0.0498 c 0.979485,0.121751 1.721021,0.420579 2.224609,0.896485 0.503573,0.470382 0.755363,1.106775 0.755371,1.909179 -8e-6,0.531253 -0.09685,1.023766 -0.290527,1.477539 -0.188159,0.448244 -0.481453,0.83838 -0.879883,1.170411 -0.39291,0.332031 -0.890957,0.592122 -1.49414,0.780273 -0.597662,0.182617 -1.303228,0.273926 -2.1167,0.273926 -0.6529976,0 -1.2672548,-0.05534 -1.842773,-0.166016 C 7.9421607,21.903295 7.4053774,21.740046 6.9073315,21.518692 l 0,-2.183105 c 0.2490227,0.132815 0.5118805,0.249025 0.7885742,0.348632 0.2766912,0.09961 0.5533836,0.185387 0.8300781,0.257325 0.2766904,0.06641 0.5478489,0.116212 0.8134766,0.149414 0.2711557,0.0332 0.5257127,0.04981 0.7636716,0.0498 0.475908,2e-6 0.871578,-0.04427 1.187012,-0.132
 812 0.315424,-0.08854 0.567215,-0.213051 0.755371,-0.373535 0.188145,-0.16048 0.320958,-0.351397 0.398438,-0.572754 0.083,-0.226885 0.124505,-0.473141 0.124511,-0.73877 -6e-6,-0.249019 -0.05258,-0.47314 -0.157715,-0.672363 -0.09962,-0.204748 -0.26563,-0.376297 -0.498046,-0.514648 C 11.685809,16.992 11.386981,16.881323 11.016218,16.803844 10.645446,16.726374 10.188903,16.687639 9.6465893,16.687633 l -0.8632813,0 0,-1.801269 0.8466797,0 c 0.5091113,7e-6 0.9324503,-0.04426 1.2700193,-0.132813 0.337561,-0.09407 0.605952,-0.218579 0.805176,-0.373535 0.204747,-0.160474 0.348627,-0.345858 0.431641,-0.556152 0.083,-0.210278 0.124506,-0.434399 0.124511,-0.672363 -5e-6,-0.431632 -0.135585,-0.769197 -0.406738,-1.012696 -0.26563,-0.243479 -0.688969,-0.365224 -1.270019,-0.365234 -0.265629,10e-6 -0.514653,0.02768 -0.7470708,0.08301 -0.2268911,0.04981 -0.4399443,0.116221 -0.6391601,0.199218 -0.1936875,0.07748 -0.3735376,0.166026 -0.5395508,0.265625 -0.1604838,0.09409 -0.3071308,0.188161 -0
 .4399414,0.282227 L 6.923933,10.893692 c 0.2324212,-0.171538 0.4842113,-0.329253 0.7553711,-0.473145 0.2766912,-0.143868 0.575519,-0.26838 0.8964844,-0.373535 0.3209611,-0.1106647 0.6668266,-0.1964393 1.0375977,-0.2573239 0.3707646,-0.06086 0.7664348,-0.091296 1.1870118,-0.091309 0.597651,1.23e-5 1.139968,0.066419 1.626953,0.1992188 0.492507,0.1272911 0.913079,0.3154421 1.261719,0.5644531 0.348625,0.243501 0.617017,0.545096 0.805176,0.904786 0.193676,0.354177 0.290519,0.760914 0.290527,1.220214"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 20.761335,14.255508 c 0.520177,8e-6 1.004389,0.08025 1.452637,0.240723 0.448235,0.160489 0.838372,0.395678 1.17041,0.705566 0.332024,0.309903 0.592114,0.697272 0.780274,1.16211 0.188142,0.459315 0.282218,0.987797 0.282226,1.585449 -8e-6,0.658532 -0.102385,1.250654 -0.307129,1.776367 -0.20476,0.520184 -0.506355,0.962892 -0.904785,1.328125 -0.398444,0.359701 -0.893724,0.636394 -1.48584,0.830078 -0.586594,0.193685 -1.261723,0.290528 -2.02539,0.290528 -0.304366,0 -0.605961,-0.01384 -0.904785,-0.0415 -0.298831,-0.02767 -0.586591,-0.06917 -0.863282,-0.124512 -0.27116,-0.04981 -0.531251,-0.116211 -0.780273,-0.199219 -0.243491,-0.08301 -0.464845,-0.17985 -0.664063,-0.290527 l 0,-2.216309 c 0.193684,0.11068 0.417805,0.215823 0.672364,0.31543 0.254555,0.09408 0.517413,0.177086 0.788574,0.249024 0.27669,0.06641 0.553383,0.121746 0.830078,0.166015 0.276689,0.03874 0.539547,0.05811 0.788574,0.05811 0.741532,2e-6 1.305985,-0.152179 1.69336,-0.456543 0.387364,-0.309893 0.581048
 ,-0.799639 0.581054,-1.469239 -6e-6,-0.597651 -0.190924,-1.051427 -0.572754,-1.361328 -0.376307,-0.315424 -0.960128,-0.473139 -1.751464,-0.473144 -0.143884,5e-6 -0.298832,0.0083 -0.464844,0.0249 -0.160485,0.01661 -0.320967,0.03874 -0.481446,0.06641 -0.15495,0.02768 -0.304364,0.05811 -0.448242,0.09131 -0.143882,0.02767 -0.268394,0.05811 -0.373535,0.09131 l -1.020996,-0.547852 0.456543,-6.1840821 6.408203,0 0,2.1748051 -4.183594,0 -0.199218,2.382324 c 0.177079,-0.03873 0.381832,-0.07747 0.614257,-0.116211 0.237952,-0.03873 0.542314,-0.0581 0.913086,-0.05811"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/36.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/36.png
new file mode 100644
index 0000000..30f4fdf
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/36.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/36.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/36.svg
new file mode 100644
index 0000000..348549a
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/36.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 14.784773,12.587051 c -8e-6,0.420582 -0.06918,0.799651 -0.20752,1.137207 -0.13282,0.33204 -0.318204,0.625334 -0.556152,0.879883 -0.232429,0.249031 -0.509122,0.459317 -0.830078,0.63086 -0.315436,0.166022 -0.658535,0.2933 -1.029297,0.381836 l 0,0.0498 c 0.979485,0.121751 1.721021,0.420579 2.224609,0.896485 0.503573,0.470382 0.755363,1.106775 0.755371,1.909179 -8e-6,0.531253 -0.09685,1.023766 -0.290527,1.477539 -0.188159,0.448244 -0.481453,0.83838 -0.879883,1.170411 -0.39291,0.332031 -0.890957,0.592122 -1.49414,0.780273 -0.597662,0.182617 -1.303228,0.273926 -2.1167,0.273926 -0.6529976,0 -1.2672548,-0.05534 -1.842773,-0.166016 C 7.9421607,21.903295 7.4053774,21.740046 6.9073315,21.518692 l 0,-2.183105 c 0.2490227,0.132815 0.5118805,0.249025 0.7885742,0.348632 0.2766912,0.09961 0.5533836,0.185387 0.8300781,0.257325 0.2766904,0.06641 0.5478489,0.116212 0.8134766,0.149414 0.2711557,0.0332 0.5257127,0.04981 0.7636716,0.0498 0.475908,2e-6 0.871578,-0.04427 1.187012,-0.132
 812 0.315424,-0.08854 0.567215,-0.213051 0.755371,-0.373535 0.188145,-0.16048 0.320958,-0.351397 0.398438,-0.572754 0.083,-0.226885 0.124505,-0.473141 0.124511,-0.73877 -6e-6,-0.249019 -0.05258,-0.47314 -0.157715,-0.672363 -0.09962,-0.204748 -0.26563,-0.376297 -0.498046,-0.514648 C 11.685809,16.992 11.386981,16.881323 11.016218,16.803844 10.645446,16.726374 10.188903,16.687639 9.6465893,16.687633 l -0.8632813,0 0,-1.801269 0.8466797,0 c 0.5091113,7e-6 0.9324503,-0.04426 1.2700193,-0.132813 0.337561,-0.09407 0.605952,-0.218579 0.805176,-0.373535 0.204747,-0.160474 0.348627,-0.345858 0.431641,-0.556152 0.083,-0.210278 0.124506,-0.434399 0.124511,-0.672363 -5e-6,-0.431632 -0.135585,-0.769197 -0.406738,-1.012696 -0.26563,-0.243479 -0.688969,-0.365224 -1.270019,-0.365234 -0.265629,10e-6 -0.514653,0.02768 -0.7470708,0.08301 -0.2268911,0.04981 -0.4399443,0.116221 -0.6391601,0.199218 -0.1936875,0.07748 -0.3735376,0.166026 -0.5395508,0.265625 -0.1604838,0.09409 -0.3071308,0.188161 -0
 .4399414,0.282227 L 6.923933,10.893692 c 0.2324212,-0.171538 0.4842113,-0.329253 0.7553711,-0.473145 0.2766912,-0.143868 0.575519,-0.26838 0.8964844,-0.373535 0.3209611,-0.1106647 0.6668266,-0.1964393 1.0375977,-0.2573239 0.3707646,-0.06086 0.7664348,-0.091296 1.1870118,-0.091309 0.597651,1.23e-5 1.139968,0.066419 1.626953,0.1992188 0.492507,0.1272911 0.913079,0.3154421 1.261719,0.5644531 0.348625,0.243501 0.617017,0.545096 0.805176,0.904786 0.193676,0.354177 0.290519,0.760914 0.290527,1.220214"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 16.428328,16.853653 c -1e-6,-0.581049 0.03044,-1.159336 0.09131,-1.734863 0.06641,-0.575514 0.17985,-1.126132 0.340332,-1.651856 0.166015,-0.531241 0.387369,-1.023753 0.664063,-1.477539 0.282224,-0.453765 0.636391,-0.846669 1.0625,-1.178711 0.431637,-0.337553 0.946285,-0.600411 1.543945,-0.788574 0.603185,-0.1936727 1.305984,-0.2905151 2.108398,-0.2905274 0.116205,1.23e-5 0.243483,0.00278 0.381836,0.0083 0.13834,0.00555 0.276686,0.013847 0.415039,0.024902 0.143873,0.00555 0.282219,0.016614 0.415039,0.033203 0.132805,0.016614 0.251783,0.035982 0.356934,0.058105 l 0,2.0502924 c -0.210294,-0.04979 -0.434415,-0.08853 -0.672363,-0.116211 -0.232429,-0.03319 -0.467618,-0.04979 -0.705567,-0.0498 -0.747076,1e-5 -1.361333,0.09408 -1.842773,0.282226 -0.48145,0.182627 -0.863285,0.439951 -1.145508,0.771973 -0.28223,0.33204 -0.484215,0.730477 -0.605957,1.195312 -0.116214,0.464852 -0.188154,0.9795 -0.21582,1.543946 l 0.09961,0 c 0.110674,-0.199212 0.243487,-0.384596 0.398438,-0
 .556153 0.160478,-0.177076 0.345862,-0.32649 0.556152,-0.448242 0.210282,-0.127271 0.445471,-0.22688 0.705566,-0.298828 0.265621,-0.07193 0.561681,-0.107902 0.888184,-0.10791 0.52571,8e-6 0.998854,0.08578 1.419434,0.257324 0.420565,0.171557 0.774732,0.42058 1.0625,0.74707 0.293286,0.326504 0.517407,0.727708 0.672363,1.203614 0.154939,0.475916 0.232413,1.021 0.232422,1.635254 -9e-6,0.658532 -0.09408,1.247887 -0.282227,1.768066 -0.182625,0.520184 -0.445483,0.962892 -0.788574,1.328125 -0.343106,0.359701 -0.758145,0.636394 -1.245117,0.830078 -0.486985,0.188151 -1.034836,0.282227 -1.643555,0.282227 -0.59766,0 -1.156579,-0.105144 -1.676758,-0.31543 -0.520185,-0.21582 -0.97396,-0.542317 -1.361328,-0.979492 -0.381837,-0.437173 -0.683432,-0.987791 -0.904785,-1.651856 -0.215821,-0.669593 -0.323731,-1.460933 -0.32373,-2.374023 m 4.216796,3.270508 c 0.226883,2e-6 0.431636,-0.0415 0.614258,-0.124512 0.188146,-0.08854 0.348627,-0.218585 0.481446,-0.390137 0.13834,-0.17708 0.243483,-0.3984
 34 0.315429,-0.664062 0.07747,-0.265622 0.116205,-0.581051 0.116211,-0.946289 -6e-6,-0.592118 -0.124518,-1.056961 -0.373535,-1.394531 -0.243495,-0.343094 -0.61703,-0.514643 -1.120605,-0.514649 -0.254562,6e-6 -0.486984,0.04981 -0.697266,0.149414 -0.21029,0.09962 -0.390141,0.229661 -0.539551,0.390137 -0.149417,0.160487 -0.265628,0.340337 -0.348633,0.539551 -0.07748,0.199223 -0.116214,0.401209 -0.116211,0.605957 -3e-6,0.28223 0.0332,0.564456 0.09961,0.846679 0.07194,0.276696 0.17708,0.528486 0.315429,0.755371 0.143877,0.221357 0.318193,0.401207 0.52295,0.539551 0.210282,0.138349 0.453771,0.207522 0.730468,0.20752"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/37.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/37.png
new file mode 100644
index 0000000..6174706
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/37.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/37.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/37.svg
new file mode 100644
index 0000000..7bc04d9
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/37.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 14.784773,12.587051 c -8e-6,0.420582 -0.06918,0.799651 -0.20752,1.137207 -0.13282,0.33204 -0.318204,0.625334 -0.556152,0.879883 -0.232429,0.249031 -0.509122,0.459317 -0.830078,0.63086 -0.315436,0.166022 -0.658535,0.2933 -1.029297,0.381836 l 0,0.0498 c 0.979485,0.121751 1.721021,0.420579 2.224609,0.896485 0.503573,0.470382 0.755363,1.106775 0.755371,1.909179 -8e-6,0.531253 -0.09685,1.023766 -0.290527,1.477539 -0.188159,0.448244 -0.481453,0.83838 -0.879883,1.170411 -0.39291,0.332031 -0.890957,0.592122 -1.49414,0.780273 -0.597662,0.182617 -1.303228,0.273926 -2.1167,0.273926 -0.6529976,0 -1.2672548,-0.05534 -1.842773,-0.166016 C 7.9421607,21.903295 7.4053774,21.740046 6.9073315,21.518692 l 0,-2.183105 c 0.2490227,0.132815 0.5118805,0.249025 0.7885742,0.348632 0.2766912,0.09961 0.5533836,0.185387 0.8300781,0.257325 0.2766904,0.06641 0.5478489,0.116212 0.8134766,0.149414 0.2711557,0.0332 0.5257127,0.04981 0.7636716,0.0498 0.475908,2e-6 0.871578,-0.04427 1.187012,-0.132
 812 0.315424,-0.08854 0.567215,-0.213051 0.755371,-0.373535 0.188145,-0.16048 0.320958,-0.351397 0.398438,-0.572754 0.083,-0.226885 0.124505,-0.473141 0.124511,-0.73877 -6e-6,-0.249019 -0.05258,-0.47314 -0.157715,-0.672363 -0.09962,-0.204748 -0.26563,-0.376297 -0.498046,-0.514648 C 11.685809,16.992 11.386981,16.881323 11.016218,16.803844 10.645446,16.726374 10.188903,16.687639 9.6465893,16.687633 l -0.8632813,0 0,-1.801269 0.8466797,0 c 0.5091113,7e-6 0.9324503,-0.04426 1.2700193,-0.132813 0.337561,-0.09407 0.605952,-0.218579 0.805176,-0.373535 0.204747,-0.160474 0.348627,-0.345858 0.431641,-0.556152 0.083,-0.210278 0.124506,-0.434399 0.124511,-0.672363 -5e-6,-0.431632 -0.135585,-0.769197 -0.406738,-1.012696 -0.26563,-0.243479 -0.688969,-0.365224 -1.270019,-0.365234 -0.265629,10e-6 -0.514653,0.02768 -0.7470708,0.08301 -0.2268911,0.04981 -0.4399443,0.116221 -0.6391601,0.199218 -0.1936875,0.07748 -0.3735376,0.166026 -0.5395508,0.265625 -0.1604838,0.09409 -0.3071308,0.188161 -0
 .4399414,0.282227 L 6.923933,10.893692 c 0.2324212,-0.171538 0.4842113,-0.329253 0.7553711,-0.473145 0.2766912,-0.143868 0.575519,-0.26838 0.8964844,-0.373535 0.3209611,-0.1106647 0.6668266,-0.1964393 1.0375977,-0.2573239 0.3707646,-0.06086 0.7664348,-0.091296 1.1870118,-0.091309 0.597651,1.23e-5 1.139968,0.066419 1.626953,0.1992188 0.492507,0.1272911 0.913079,0.3154421 1.261719,0.5644531 0.348625,0.243501 0.617017,0.545096 0.805176,0.904786 0.193676,0.354177 0.290519,0.760914 0.290527,1.220214"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 17.51573,22.008438 4.316406,-9.960937 -5.578125,0 0,-2.1582035 8.367188,0 0,1.6103515 -4.424317,10.508789 -2.681152,0"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/38.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/38.png
new file mode 100644
index 0000000..161661d
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/38.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/38.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/38.svg
new file mode 100644
index 0000000..ec2ad98
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/38.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 14.784773,12.587051 c -8e-6,0.420582 -0.06918,0.799651 -0.20752,1.137207 -0.13282,0.33204 -0.318204,0.625334 -0.556152,0.879883 -0.232429,0.249031 -0.509122,0.459317 -0.830078,0.63086 -0.315436,0.166022 -0.658535,0.2933 -1.029297,0.381836 l 0,0.0498 c 0.979485,0.121751 1.721021,0.420579 2.224609,0.896485 0.503573,0.470382 0.755363,1.106775 0.755371,1.909179 -8e-6,0.531253 -0.09685,1.023766 -0.290527,1.477539 -0.188159,0.448244 -0.481453,0.83838 -0.879883,1.170411 -0.39291,0.332031 -0.890957,0.592122 -1.49414,0.780273 -0.597662,0.182617 -1.303228,0.273926 -2.1167,0.273926 -0.6529976,0 -1.2672548,-0.05534 -1.842773,-0.166016 C 7.9421607,21.903295 7.4053774,21.740046 6.9073315,21.518692 l 0,-2.183105 c 0.2490227,0.132815 0.5118805,0.249025 0.7885742,0.348632 0.2766912,0.09961 0.5533836,0.185387 0.8300781,0.257325 0.2766904,0.06641 0.5478489,0.116212 0.8134766,0.149414 0.2711557,0.0332 0.5257127,0.04981 0.7636716,0.0498 0.475908,2e-6 0.871578,-0.04427 1.187012,-0.132
 812 0.315424,-0.08854 0.567215,-0.213051 0.755371,-0.373535 0.188145,-0.16048 0.320958,-0.351397 0.398438,-0.572754 0.083,-0.226885 0.124505,-0.473141 0.124511,-0.73877 -6e-6,-0.249019 -0.05258,-0.47314 -0.157715,-0.672363 -0.09962,-0.204748 -0.26563,-0.376297 -0.498046,-0.514648 C 11.685809,16.992 11.386981,16.881323 11.016218,16.803844 10.645446,16.726374 10.188903,16.687639 9.6465893,16.687633 l -0.8632813,0 0,-1.801269 0.8466797,0 c 0.5091113,7e-6 0.9324503,-0.04426 1.2700193,-0.132813 0.337561,-0.09407 0.605952,-0.218579 0.805176,-0.373535 0.204747,-0.160474 0.348627,-0.345858 0.431641,-0.556152 0.083,-0.210278 0.124506,-0.434399 0.124511,-0.672363 -5e-6,-0.431632 -0.135585,-0.769197 -0.406738,-1.012696 -0.26563,-0.243479 -0.688969,-0.365224 -1.270019,-0.365234 -0.265629,10e-6 -0.514653,0.02768 -0.7470708,0.08301 -0.2268911,0.04981 -0.4399443,0.116221 -0.6391601,0.199218 -0.1936875,0.07748 -0.3735376,0.166026 -0.5395508,0.265625 -0.1604838,0.09409 -0.3071308,0.188161 -0
 .4399414,0.282227 L 6.923933,10.893692 c 0.2324212,-0.171538 0.4842113,-0.329253 0.7553711,-0.473145 0.2766912,-0.143868 0.575519,-0.26838 0.8964844,-0.373535 0.3209611,-0.1106647 0.6668266,-0.1964393 1.0375977,-0.2573239 0.3707646,-0.06086 0.7664348,-0.091296 1.1870118,-0.091309 0.597651,1.23e-5 1.139968,0.066419 1.626953,0.1992188 0.492507,0.1272911 0.913079,0.3154421 1.261719,0.5644531 0.348625,0.243501 0.617017,0.545096 0.805176,0.904786 0.193676,0.354177 0.290519,0.760914 0.290527,1.220214"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 20.48741,9.7149811 c 0.503575,1.23e-5 0.979486,0.060885 1.427734,0.1826172 0.448236,0.1217567 0.841139,0.3043737 1.178711,0.5478517 0.337557,0.243501 0.605949,0.547862 0.805176,0.913086 0.19921,0.365244 0.298819,0.794118 0.298828,1.286621 -9e-6,0.365243 -0.05535,0.697274 -0.166016,0.996094 -0.110685,0.293302 -0.262866,0.561694 -0.456543,0.805175 -0.193692,0.237963 -0.423347,0.451017 -0.688965,0.639161 -0.265631,0.188157 -0.553392,0.359707 -0.863281,0.514648 0.320957,0.171556 0.63362,0.362473 0.937988,0.572754 0.309889,0.210292 0.583814,0.448247 0.821778,0.713867 0.237947,0.260096 0.428865,0.55339 0.572754,0.879883 0.143871,0.326501 0.215811,0.691735 0.21582,1.095703 -9e-6,0.503583 -0.09962,0.960126 -0.298828,1.369629 -0.199227,0.409506 -0.478687,0.758139 -0.838379,1.045898 -0.359708,0.287761 -0.791348,0.509115 -1.294922,0.664063 -0.498053,0.154948 -1.048671,0.232422 -1.651855,0.232422 -0.652999,0 -1.234053,-0.07471 -1.743164,-0.224121 -0.509117,-0.149414 -0.93799
 1,-0.362467 -1.286622,-0.639161 -0.348634,-0.276691 -0.614258,-0.617023 -0.796875,-1.020996 -0.177084,-0.403969 -0.265625,-0.857744 -0.265625,-1.361328 0,-0.415035 0.06087,-0.78857 0.182618,-1.120605 0.121744,-0.332027 0.287759,-0.630855 0.498046,-0.896485 0.210285,-0.265619 0.456542,-0.500808 0.73877,-0.705566 0.282224,-0.204747 0.583819,-0.384597 0.904785,-0.539551 -0.271161,-0.171543 -0.525718,-0.356927 -0.763672,-0.556152 -0.237957,-0.204746 -0.445477,-0.428866 -0.622558,-0.672363 -0.171551,-0.249016 -0.309897,-0.522942 -0.415039,-0.821778 -0.09961,-0.298819 -0.149415,-0.628083 -0.149414,-0.987793 -1e-6,-0.481435 0.09961,-0.902008 0.298828,-1.261718 0.204751,-0.365224 0.478676,-0.669585 0.821777,-0.913086 0.343097,-0.249012 0.738767,-0.434396 1.187012,-0.5561527 0.448238,-0.1217326 0.918615,-0.1826049 1.411133,-0.1826172 m -1.718262,9.0644529 c -3e-6,0.221357 0.03597,0.42611 0.10791,0.614258 0.07194,0.18262 0.17708,0.340334 0.31543,0.473145 0.143876,0.132814 0.32096,0.23
 7957 0.53125,0.315429 0.210282,0.07194 0.453771,0.107912 0.730468,0.10791 0.58105,2e-6 1.015457,-0.135577 1.303223,-0.406738 0.287754,-0.27669 0.431634,-0.639157 0.431641,-1.087402 -7e-6,-0.232419 -0.04981,-0.439938 -0.149414,-0.622559 -0.09408,-0.188147 -0.218594,-0.359696 -0.373535,-0.514648 -0.14942,-0.160478 -0.32097,-0.307125 -0.514649,-0.439942 -0.19369,-0.132807 -0.387375,-0.260086 -0.581055,-0.381836 L 20.3878,16.72084 c -0.243494,0.12175 -0.464848,0.254563 -0.664062,0.398438 -0.199223,0.138351 -0.370772,0.293299 -0.514649,0.464844 -0.138349,0.16602 -0.246259,0.348637 -0.32373,0.547851 -0.07748,0.199223 -0.116214,0.415043 -0.116211,0.647461 m 1.70166,-7.188476 c -0.182622,10e-6 -0.354171,0.02768 -0.514648,0.08301 -0.154952,0.05535 -0.290532,0.13559 -0.406739,0.240723 -0.11068,0.105153 -0.199222,0.235199 -0.265625,0.390137 -0.06641,0.154957 -0.09961,0.329274 -0.09961,0.522949 -3e-6,0.232431 0.0332,0.434416 0.09961,0.605957 0.07194,0.166024 0.166012,0.315438 0.282227,0
 .448242 0.121741,0.127287 0.260087,0.243498 0.415039,0.348633 0.160477,0.09962 0.32926,0.199226 0.506348,0.298828 0.171544,-0.08853 0.334793,-0.185376 0.489746,-0.290527 0.154942,-0.105135 0.290522,-0.224113 0.406738,-0.356934 0.121739,-0.138338 0.218581,-0.293286 0.290527,-0.464843 0.07193,-0.171541 0.107904,-0.367993 0.10791,-0.589356 -6e-6,-0.193675 -0.03321,-0.367992 -0.09961,-0.522949 -0.06641,-0.154938 -0.15772,-0.284984 -0.273926,-0.390137 -0.116216,-0.105133 -0.254562,-0.185374 -0.415039,-0.240723 -0.160487,-0.05533 -0.334803,-0.083 -0.522949,-0.08301"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/39.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/39.png
new file mode 100644
index 0000000..2d46b24
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/39.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/39.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/39.svg
new file mode 100644
index 0000000..664ffdd
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/39.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 14.784773,12.587051 c -8e-6,0.420582 -0.06918,0.799651 -0.20752,1.137207 -0.13282,0.33204 -0.318204,0.625334 -0.556152,0.879883 -0.232429,0.249031 -0.509122,0.459317 -0.830078,0.63086 -0.315436,0.166022 -0.658535,0.2933 -1.029297,0.381836 l 0,0.0498 c 0.979485,0.121751 1.721021,0.420579 2.224609,0.896485 0.503573,0.470382 0.755363,1.106775 0.755371,1.909179 -8e-6,0.531253 -0.09685,1.023766 -0.290527,1.477539 -0.188159,0.448244 -0.481453,0.83838 -0.879883,1.170411 -0.39291,0.332031 -0.890957,0.592122 -1.49414,0.780273 -0.597662,0.182617 -1.303228,0.273926 -2.1167,0.273926 -0.6529976,0 -1.2672548,-0.05534 -1.842773,-0.166016 C 7.9421607,21.903295 7.4053774,21.740046 6.9073315,21.518692 l 0,-2.183105 c 0.2490227,0.132815 0.5118805,0.249025 0.7885742,0.348632 0.2766912,0.09961 0.5533836,0.185387 0.8300781,0.257325 0.2766904,0.06641 0.5478489,0.116212 0.8134766,0.149414 0.2711557,0.0332 0.5257127,0.04981 0.7636716,0.0498 0.475908,2e-6 0.871578,-0.04427 1.187012,-0.132
 812 0.315424,-0.08854 0.567215,-0.213051 0.755371,-0.373535 0.188145,-0.16048 0.320958,-0.351397 0.398438,-0.572754 0.083,-0.226885 0.124505,-0.473141 0.124511,-0.73877 -6e-6,-0.249019 -0.05258,-0.47314 -0.157715,-0.672363 -0.09962,-0.204748 -0.26563,-0.376297 -0.498046,-0.514648 C 11.685809,16.992 11.386981,16.881323 11.016218,16.803844 10.645446,16.726374 10.188903,16.687639 9.6465893,16.687633 l -0.8632813,0 0,-1.801269 0.8466797,0 c 0.5091113,7e-6 0.9324503,-0.04426 1.2700193,-0.132813 0.337561,-0.09407 0.605952,-0.218579 0.805176,-0.373535 0.204747,-0.160474 0.348627,-0.345858 0.431641,-0.556152 0.083,-0.210278 0.124506,-0.434399 0.124511,-0.672363 -5e-6,-0.431632 -0.135585,-0.769197 -0.406738,-1.012696 -0.26563,-0.243479 -0.688969,-0.365224 -1.270019,-0.365234 -0.265629,10e-6 -0.514653,0.02768 -0.7470708,0.08301 -0.2268911,0.04981 -0.4399443,0.116221 -0.6391601,0.199218 -0.1936875,0.07748 -0.3735376,0.166026 -0.5395508,0.265625 -0.1604838,0.09409 -0.3071308,0.188161 -0
 .4399414,0.282227 L 6.923933,10.893692 c 0.2324212,-0.171538 0.4842113,-0.329253 0.7553711,-0.473145 0.2766912,-0.143868 0.575519,-0.26838 0.8964844,-0.373535 0.3209611,-0.1106647 0.6668266,-0.1964393 1.0375977,-0.2573239 0.3707646,-0.06086 0.7664348,-0.091296 1.1870118,-0.091309 0.597651,1.23e-5 1.139968,0.066419 1.626953,0.1992188 0.492507,0.1272911 0.913079,0.3154421 1.261719,0.5644531 0.348625,0.243501 0.617017,0.545096 0.805176,0.904786 0.193676,0.354177 0.290519,0.760914 0.290527,1.220214"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 24.554792,15.052383 c -8e-6,0.581061 -0.03321,1.162116 -0.09961,1.743164 -0.06088,0.575526 -0.174325,1.126144 -0.340332,1.651856 -0.16049,0.525719 -0.381844,1.018232 -0.664063,1.477539 -0.2767,0.453778 -0.630866,0.846681 -1.0625,1.178711 -0.426112,0.332032 -0.94076,0.59489 -1.543945,0.788574 -0.597661,0.188151 -1.300459,0.282227 -2.108398,0.282227 -0.116214,0 -0.243493,-0.0028 -0.381836,-0.0083 -0.138349,-0.0055 -0.279462,-0.01384 -0.42334,-0.0249 -0.138348,-0.0055 -0.273928,-0.0166 -0.406738,-0.0332 -0.132814,-0.01107 -0.249025,-0.02767 -0.348633,-0.0498 l 0,-2.058594 c 0.204751,0.05534 0.423338,0.09961 0.655762,0.132813 0.237953,0.02767 0.478675,0.04151 0.722168,0.0415 0.747066,2e-6 1.361324,-0.09131 1.842773,-0.273925 0.48144,-0.188149 0.863276,-0.44824 1.145508,-0.780274 0.28222,-0.337562 0.481439,-0.738766 0.597656,-1.203613 0.121738,-0.464839 0.196445,-0.97672 0.224121,-1.535645 l -0.10791,0 c -0.110683,0.199225 -0.243496,0.384609 -0.398438,0.556153 -0.1549
 53,0.171554 -0.33757,0.320968 -0.547851,0.448242 -0.210292,0.127283 -0.448247,0.226892 -0.713867,0.298828 -0.26563,0.07194 -0.561691,0.107914 -0.888184,0.10791 -0.525719,4e-6 -0.998863,-0.08577 -1.419433,-0.257324 -0.420575,-0.171545 -0.777509,-0.420568 -1.070801,-0.74707 -0.287762,-0.326492 -0.509116,-0.727696 -0.664063,-1.203614 -0.154948,-0.475904 -0.232422,-1.020988 -0.232422,-1.635253 0,-0.65852 0.09131,-1.247875 0.273926,-1.768067 0.18815,-0.520172 0.453775,-0.960113 0.796875,-1.319824 0.343097,-0.365223 0.758136,-0.644682 1.245117,-0.838379 0.49251,-0.1936727 1.043128,-0.2905151 1.651856,-0.2905274 0.597651,1.23e-5 1.15657,0.1079224 1.676758,0.3237304 0.520175,0.210298 0.971184,0.534028 1.353027,0.971192 0.381828,0.437185 0.683423,0.990569 0.904785,1.660156 0.221346,0.669605 0.332023,1.458178 0.332031,2.365722 m -4.216796,-3.262207 c -0.226893,1.1e-5 -0.434412,0.04151 -0.622559,0.124512 -0.188155,0.08302 -0.351403,0.213063 -0.489746,0.390137 -0.132816,0.171559 -0.2379
 59,0.392913 -0.31543,0.664062 -0.07194,0.265634 -0.107913,0.581063 -0.10791,0.946289 -3e-6,0.586596 0.124509,1.05144 0.373535,1.394532 0.24902,0.343105 0.625322,0.514654 1.128906,0.514648 0.254553,6e-6 0.486975,-0.0498 0.697266,-0.149414 0.210281,-0.0996 0.390131,-0.229648 0.539551,-0.390137 0.149408,-0.160475 0.262852,-0.340325 0.340332,-0.53955 0.083,-0.199212 0.124505,-0.401197 0.124512,-0.605958 -7e-6,-0.282218 -0.03598,-0.561677 -0.107911,-0.838378 -0.06641,-0.282218 -0.171555,-0.534008 -0.315429,-0.755372 -0.138352,-0.226878 -0.312669,-0.409495 -0.52295,-0.547851 -0.204757,-0.138336 -0.44548,-0.207509 -0.722167,-0.20752"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/4.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/4.png
new file mode 100644
index 0000000..9b9dd88
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/4.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/4.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/4.svg
new file mode 100644
index 0000000..bc06c73
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/4.svg
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 20.078077,19.493301 -1.460937,0 0,2.515137 -2.498535,0 0,-2.515137 -5.013672,0 0,-1.784668 5.154785,-7.8359371 2.357422,0 0,7.6284181 1.460937,0 0,1.992187 m -3.959472,-1.992187 0,-2.058594 c -5e-6,-0.07193 -5e-6,-0.17431 0,-0.307129 0.0055,-0.138339 0.01106,-0.293287 0.0166,-0.464844 0.0055,-0.171541 0.01106,-0.348625 0.0166,-0.53125 0.01106,-0.182609 0.01936,-0.356925 0.0249,-0.522949 0.01106,-0.166007 0.01936,-0.309887 0.0249,-0.43164 0.01106,-0.12727 0.01936,-0.218579 0.0249,-0.273926 l -0.07471,0 c -0.09962,0.232431 -0.213058,0.478687 -0.340332,0.738769 -0.12175,0.2601 -0.262863,0.520191 -0.42334,0.780274 l -2.025391,3.071289 2.75586,0"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/40.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/40.png
new file mode 100644
index 0000000..fe2a68f
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/40.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/40.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/40.svg
new file mode 100644
index 0000000..5a94d1b
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/40.svg
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 15.440535,19.493301 -1.460938,0 0,2.515137 -2.498535,0 0,-2.515137 -5.0136719,0 0,-1.784668 5.1547849,-7.8359371 2.357422,0 0,7.6284181 1.460938,0 0,1.992187 m -3.959473,-1.992187 0,-2.058594 c -5e-6,-0.07193 -5e-6,-0.17431 0,-0.307129 0.0055,-0.138339 0.01106,-0.293287 0.0166,-0.464844 0.0055,-0.171541 0.01106,-0.348625 0.0166,-0.53125 0.01106,-0.182609 0.01936,-0.356925 0.0249,-0.522949 0.01106,-0.166007 0.01936,-0.309887 0.0249,-0.43164 0.01106,-0.12727 0.01936,-0.218579 0.0249,-0.273926 l -0.07471,0 c -0.09961,0.232431 -0.213058,0.478687 -0.340332,0.738769 -0.121749,0.2601 -0.262863,0.520191 -0.42334,0.780274 l -2.0253904,3.071289 2.7558594,0"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+    <path
+       d="m 24.6378,15.940567 c -9e-6,0.979497 -0.07748,1.853845 -0.232422,2.623047 -0.149422,0.769208 -0.392912,1.422202 -0.730468,1.958984 -0.332039,0.536785 -0.763679,0.94629 -1.294922,1.228516 -0.525722,0.282226 -1.162115,0.42334 -1.90918,0.42334 -0.702803,0 -1.314294,-0.141114 -1.834473,-0.42334 -0.520184,-0.282226 -0.951824,-0.691731 -1.294922,-1.228516 -0.3431,-0.536782 -0.600424,-1.189776 -0.771972,-1.958984 -0.166016,-0.769202 -0.249024,-1.64355 -0.249024,-2.623047 0,-0.979485 0.07471,-1.8566 0.224121,-2.631348 0.154948,-0.77473 0.398437,-1.430491 0.730469,-1.967285 0.33203,-0.536772 0.760903,-0.946277 1.286621,-1.228515 0.525713,-0.2877487 1.162106,-0.4316287 1.90918,-0.431641 0.69726,1.23e-5 1.305984,0.1411254 1.826172,0.42334 0.520175,0.282238 0.954582,0.691743 1.303223,1.228515 0.348624,0.536794 0.608715,1.192555 0.780273,1.967286 0.171541,0.774747 0.257315,1.654629 0.257324,2.639648 m -5.760742,0 c -3e-6,1.383468 0.118975,2.423832 0.356934,3.121094 0.237952,0.6
 97268 0.650223,1.0459 1.236816,1.045898 0.575516,2e-6 0.987787,-0.345863 1.236816,-1.037597 0.254552,-0.691729 0.38183,-1.734859 0.381836,-3.129395 -6e-6,-1.38899 -0.127284,-2.43212 -0.381836,-3.129395 -0.249029,-0.702789 -0.6613,-1.054188 -1.236816,-1.054199 -0.293299,1.1e-5 -0.542322,0.08855 -0.74707,0.265625 -0.199223,0.177093 -0.362471,0.439951 -0.489746,0.788574 -0.127282,0.348642 -0.218591,0.785816 -0.273926,1.311524 -0.05534,0.52019 -0.08301,1.126146 -0.08301,1.817871"
+       id="path2820"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/5.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/5.png
new file mode 100644
index 0000000..f239fb6
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/5.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/5.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/5.svg
new file mode 100644
index 0000000..82fb03d
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/5.svg
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 16.035597,14.255508 c 0.520177,8e-6 1.004388,0.08025 1.452637,0.240723 0.448235,0.160489 0.838371,0.395678 1.17041,0.705566 0.332023,0.309903 0.592114,0.697272 0.780273,1.16211 0.188143,0.459315 0.282218,0.987797 0.282227,1.585449 -9e-6,0.658532 -0.102385,1.250654 -0.307129,1.776367 -0.204761,0.520184 -0.506356,0.962892 -0.904785,1.328125 -0.398445,0.359701 -0.893724,0.636394 -1.48584,0.830078 -0.586594,0.193685 -1.261724,0.290528 -2.025391,0.290528 -0.304365,0 -0.60596,-0.01384 -0.904785,-0.0415 -0.298831,-0.02767 -0.586591,-0.06917 -0.863281,-0.124512 -0.271161,-0.04981 -0.531252,-0.116211 -0.780274,-0.199219 -0.24349,-0.08301 -0.464844,-0.17985 -0.664062,-0.290527 l 0,-2.216309 c 0.193684,0.11068 0.417805,0.215823 0.672363,0.31543 0.254556,0.09408 0.517414,0.177086 0.788574,0.249024 0.276691,0.06641 0.553383,0.121746 0.830078,0.166015 0.27669,0.03874 0.539548,0.05811 0.788575,0.05811 0.741532,2e-6 1.305984,-0.152179 1.693359,-0.456543 0.387364,-0.309893 0.5810
 49,-0.799639 0.581055,-1.469239 -6e-6,-0.597651 -0.190924,-1.051427 -0.572754,-1.361328 -0.376307,-0.315424 -0.960128,-0.473139 -1.751465,-0.473144 -0.143884,5e-6 -0.298832,0.0083 -0.464844,0.0249 -0.160485,0.01661 -0.320966,0.03874 -0.481445,0.06641 -0.154951,0.02768 -0.304365,0.05811 -0.448242,0.09131 -0.143883,0.02767 -0.268394,0.05811 -0.373535,0.09131 l -1.020996,-0.547852 0.456542,-6.1840821 6.408204,0 0,2.1748051 -4.183594,0 -0.199219,2.382324 c 0.17708,-0.03873 0.381832,-0.07747 0.614258,-0.116211 0.237951,-0.03873 0.542313,-0.0581 0.913086,-0.05811"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/6.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/6.png
new file mode 100644
index 0000000..18866e6
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/6.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/6.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/6.svg
new file mode 100644
index 0000000..e2f62af
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/6.svg
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 11.702589,16.853653 c -10e-7,-0.581049 0.03044,-1.159336 0.09131,-1.734863 0.0664,-0.575514 0.179849,-1.126132 0.340332,-1.651856 0.166014,-0.531241 0.387368,-1.023753 0.664062,-1.477539 0.282225,-0.453765 0.636391,-0.846669 1.0625,-1.178711 0.431638,-0.337553 0.946285,-0.600411 1.543945,-0.788574 0.603186,-0.1936727 1.305984,-0.2905151 2.108399,-0.2905274 0.116204,1.23e-5 0.243483,0.00278 0.381836,0.0083 0.138339,0.00555 0.276685,0.013847 0.415039,0.024902 0.143873,0.00555 0.282219,0.016614 0.415039,0.033203 0.132805,0.016614 0.251782,0.035982 0.356934,0.058105 l 0,2.0502924 c -0.210295,-0.04979 -0.434416,-0.08853 -0.672364,-0.116211 -0.232429,-0.03319 -0.467617,-0.04979 -0.705566,-0.0498 -0.747076,1e-5 -1.361334,0.09408 -1.842774,0.282226 -0.481449,0.182627 -0.863285,0.439951 -1.145507,0.771973 -0.28223,0.33204 -0.484216,0.730477 -0.605957,1.195312 -0.116214,0.464852 -0.188154,0.9795 -0.215821,1.543946 l 0.09961,0 c 0.110674,-0.199212 0.243486,-0.384596 0.39843
 7,-0.556153 0.160478,-0.177076 0.345862,-0.32649 0.556153,-0.448242 0.210282,-0.127271 0.44547,-0.22688 0.705566,-0.298828 0.26562,-0.07193 0.561681,-0.107902 0.888184,-0.10791 0.52571,8e-6 0.998854,0.08578 1.419433,0.257324 0.420566,0.171557 0.774732,0.42058 1.0625,0.74707 0.293286,0.326504 0.517407,0.727708 0.672363,1.203614 0.15494,0.475916 0.232413,1.021 0.232422,1.635254 -9e-6,0.658532 -0.09408,1.247887 -0.282226,1.768066 -0.182626,0.520184 -0.445484,0.962892 -0.788575,1.328125 -0.343106,0.359701 -0.758145,0.636394 -1.245117,0.830078 -0.486985,0.188151 -1.034836,0.282227 -1.643554,0.282227 -0.597661,0 -1.15658,-0.105144 -1.676758,-0.31543 -0.520185,-0.21582 -0.973961,-0.542317 -1.361328,-0.979492 -0.381838,-0.437173 -0.683433,-0.987791 -0.904785,-1.651856 -0.215822,-0.669593 -0.323732,-1.460933 -0.323731,-2.374023 m 4.216797,3.270508 c 0.226883,2e-6 0.431635,-0.0415 0.614258,-0.124512 0.188145,-0.08854 0.348627,-0.218585 0.481445,-0.390137 0.13834,-0.17708 0.243483,-0.3
 98434 0.31543,-0.664062 0.07747,-0.265622 0.116204,-0.581051 0.116211,-0.946289 -7e-6,-0.592118 -0.124518,-1.056961 -0.373535,-1.394531 -0.243496,-0.343094 -0.617031,-0.514643 -1.120606,-0.514649 -0.254562,6e-6 -0.486984,0.04981 -0.697266,0.149414 -0.21029,0.09962 -0.39014,0.229661 -0.53955,0.390137 -0.149418,0.160487 -0.265629,0.340337 -0.348633,0.539551 -0.07748,0.199223 -0.116214,0.401209 -0.116211,0.605957 -3e-6,0.28223 0.0332,0.564456 0.09961,0.846679 0.07194,0.276696 0.17708,0.528486 0.31543,0.755371 0.143876,0.221357 0.318193,0.401207 0.522949,0.539551 0.210282,0.138349 0.453772,0.207522 0.730469,0.20752"
+       id="path2846"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/7.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/7.png
new file mode 100644
index 0000000..52c3a18
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/7.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/7.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/7.svg
new file mode 100644
index 0000000..a43460f
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/7.svg
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 12.789991,22.008438 4.316407,-9.960937 -5.578125,0 0,-2.1582035 8.367187,0 0,1.6103515 -4.424316,10.508789 -2.681153,0"
+       id="path2832"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/8.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/8.png
new file mode 100644
index 0000000..8a8cb21
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/8.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/8.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/8.svg
new file mode 100644
index 0000000..2c82d3f
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/8.svg
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 15.761671,9.7149811 c 0.503576,1.23e-5 0.979487,0.060885 1.427734,0.1826172 0.448236,0.1217567 0.841139,0.3043737 1.178711,0.5478517 0.337558,0.243501 0.60595,0.547862 0.805176,0.913086 0.199211,0.365244 0.29882,0.794118 0.298828,1.286621 -8e-6,0.365243 -0.05535,0.697274 -0.166015,0.996094 -0.110686,0.293302 -0.262866,0.561694 -0.456543,0.805175 -0.193693,0.237963 -0.423348,0.451017 -0.688965,0.639161 -0.265632,0.188157 -0.553392,0.359707 -0.863281,0.514648 0.320957,0.171556 0.633619,0.362473 0.937988,0.572754 0.309888,0.210292 0.583814,0.448247 0.821777,0.713867 0.237948,0.260096 0.428866,0.55339 0.572754,0.879883 0.143872,0.326501 0.215812,0.691735 0.21582,1.095703 -8e-6,0.503583 -0.09962,0.960126 -0.298828,1.369629 -0.199227,0.409506 -0.478686,0.758139 -0.838379,1.045898 -0.359707,0.287761 -0.791348,0.509115 -1.294921,0.664063 -0.498053,0.154948 -1.048671,0.232422 -1.651856,0.232422 -0.652999,0 -1.234053,-0.07471 -1.743164,-0.224121 -0.509117,-0.149414 -0.9379
 9,-0.362467 -1.286621,-0.639161 -0.348634,-0.276691 -0.614259,-0.617023 -0.796875,-1.020996 -0.177084,-0.403969 -0.265626,-0.857744 -0.265625,-1.361328 -10e-7,-0.415035 0.06087,-0.78857 0.182617,-1.120605 0.121744,-0.332027 0.287759,-0.630855 0.498047,-0.896485 0.210285,-0.265619 0.456541,-0.500808 0.73877,-0.705566 0.282224,-0.204747 0.583819,-0.384597 0.904785,-0.539551 -0.271162,-0.171543 -0.525719,-0.356927 -0.763672,-0.556152 -0.237958,-0.204746 -0.445477,-0.428866 -0.622559,-0.672363 -0.171551,-0.249016 -0.309897,-0.522942 -0.415039,-0.821778 -0.09961,-0.298819 -0.149415,-0.628083 -0.149414,-0.987793 -10e-7,-0.481435 0.09961,-0.902008 0.298828,-1.261718 0.204751,-0.365224 0.478677,-0.669585 0.821778,-0.913086 0.343096,-0.249012 0.738766,-0.434396 1.187011,-0.5561527 0.448239,-0.1217326 0.918616,-0.1826049 1.411133,-0.1826172 m -1.718262,9.0644529 c -3e-6,0.221357 0.03597,0.42611 0.107911,0.614258 0.07194,0.18262 0.17708,0.340334 0.315429,0.473145 0.143877,0.132814 0.32
 096,0.237957 0.53125,0.315429 0.210283,0.07194 0.453772,0.107912 0.730469,0.10791 0.581049,2e-6 1.015457,-0.135577 1.303223,-0.406738 0.287754,-0.27669 0.431634,-0.639157 0.43164,-1.087402 -6e-6,-0.232419 -0.04981,-0.439938 -0.149414,-0.622559 -0.09408,-0.188147 -0.218593,-0.359696 -0.373535,-0.514648 -0.14942,-0.160478 -0.320969,-0.307125 -0.514648,-0.439942 -0.19369,-0.132807 -0.387375,-0.260086 -0.581055,-0.381836 L 15.662062,16.72084 c -0.243494,0.12175 -0.464848,0.254563 -0.664063,0.398438 -0.199222,0.138351 -0.370772,0.293299 -0.514648,0.464844 -0.13835,0.16602 -0.24626,0.348637 -0.323731,0.547851 -0.07748,0.199223 -0.116214,0.415043 -0.116211,0.647461 m 1.701661,-7.188476 c -0.182622,10e-6 -0.354171,0.02768 -0.514649,0.08301 -0.154952,0.05535 -0.290531,0.13559 -0.406738,0.240723 -0.110681,0.105153 -0.199223,0.235199 -0.265625,0.390137 -0.06641,0.154957 -0.09961,0.329274 -0.09961,0.522949 -3e-6,0.232431 0.0332,0.434416 0.09961,0.605957 0.07194,0.166024 0.166012,0.31543
 8 0.282226,0.448242 0.121741,0.127287 0.260087,0.243498 0.415039,0.348633 0.160478,0.09962 0.32926,0.199226 0.506348,0.298828 0.171545,-0.08853 0.334793,-0.185376 0.489746,-0.290527 0.154943,-0.105135 0.290522,-0.224113 0.406738,-0.356934 0.12174,-0.138338 0.218582,-0.293286 0.290528,-0.464843 0.07193,-0.171541 0.107904,-0.367993 0.10791,-0.589356 -6e-6,-0.193675 -0.03321,-0.367992 -0.09961,-0.522949 -0.06641,-0.154938 -0.157721,-0.284984 -0.273926,-0.390137 -0.116217,-0.105133 -0.254563,-0.185374 -0.415039,-0.240723 -0.160487,-0.05533 -0.334803,-0.083 -0.522949,-0.08301"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/9.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/9.png
new file mode 100644
index 0000000..0ae412f
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/9.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/9.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/9.svg
new file mode 100644
index 0000000..b0f04c4
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/9.svg
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg2">
+  <defs
+     id="defs15" />
+  <circle
+     cx="16"
+     cy="16"
+     r="14"
+     id="circle"
+     style="fill:#3c6eb4" />
+  <g
+     id="text2820"
+     style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans">
+    <path
+       d="m 19.829054,15.052383 c -9e-6,0.581061 -0.03321,1.162116 -0.09961,1.743164 -0.06088,0.575526 -0.174325,1.126144 -0.340333,1.651856 -0.160489,0.525719 -0.381843,1.018232 -0.664062,1.477539 -0.2767,0.453778 -0.630866,0.846681 -1.0625,1.178711 -0.426113,0.332032 -0.940761,0.59489 -1.543945,0.788574 -0.597661,0.188151 -1.30046,0.282227 -2.108399,0.282227 -0.116214,0 -0.243492,-0.0028 -0.381836,-0.0083 -0.138348,-0.0055 -0.279462,-0.01384 -0.42334,-0.0249 -0.138348,-0.0055 -0.273927,-0.0166 -0.406738,-0.0332 -0.132814,-0.01107 -0.249025,-0.02767 -0.348633,-0.0498 l 0,-2.058594 c 0.204751,0.05534 0.423338,0.09961 0.655762,0.132813 0.237954,0.02767 0.478676,0.04151 0.722168,0.0415 0.747067,2e-6 1.361324,-0.09131 1.842773,-0.273925 0.481441,-0.188149 0.863276,-0.44824 1.145508,-0.780274 0.282221,-0.337562 0.481439,-0.738766 0.597657,-1.203613 0.121738,-0.464839 0.196445,-0.97672 0.224121,-1.535645 l -0.107911,0 c -0.110683,0.199225 -0.243495,0.384609 -0.398437,0.556153 -0.
 154954,0.171554 -0.337571,0.320968 -0.547852,0.448242 -0.210291,0.127283 -0.448247,0.226892 -0.713867,0.298828 -0.265629,0.07194 -0.56169,0.107914 -0.888183,0.10791 -0.52572,4e-6 -0.998864,-0.08577 -1.419434,-0.257324 -0.420575,-0.171545 -0.777508,-0.420568 -1.070801,-0.74707 -0.287761,-0.326492 -0.509115,-0.727696 -0.664062,-1.203614 -0.154949,-0.475904 -0.232423,-1.020988 -0.232422,-1.635253 -10e-7,-0.65852 0.09131,-1.247875 0.273926,-1.768067 0.18815,-0.520172 0.453774,-0.960113 0.796875,-1.319824 0.343097,-0.365223 0.758135,-0.644682 1.245117,-0.838379 0.49251,-0.1936727 1.043127,-0.2905151 1.651855,-0.2905274 0.597651,1.23e-5 1.15657,0.1079224 1.676758,0.3237304 0.520176,0.210298 0.971184,0.534028 1.353027,0.971192 0.381829,0.437185 0.683423,0.990569 0.904786,1.660156 0.221345,0.669605 0.332022,1.458178 0.332031,2.365722 m -4.216797,-3.262207 c -0.226892,1.1e-5 -0.434412,0.04151 -0.622559,0.124512 -0.188154,0.08302 -0.351403,0.213063 -0.489746,0.390137 -0.132815,0.17155
 9 -0.237959,0.392913 -0.315429,0.664062 -0.07194,0.265634 -0.107914,0.581063 -0.107911,0.946289 -3e-6,0.586596 0.124509,1.05144 0.373536,1.394532 0.249019,0.343105 0.625321,0.514654 1.128906,0.514648 0.254552,6e-6 0.486974,-0.0498 0.697266,-0.149414 0.210281,-0.0996 0.390131,-0.229648 0.53955,-0.390137 0.149408,-0.160475 0.262852,-0.340325 0.340332,-0.53955 0.083,-0.199212 0.124506,-0.401197 0.124512,-0.605958 -6e-6,-0.282218 -0.03598,-0.561677 -0.10791,-0.838378 -0.06641,-0.282218 -0.171556,-0.534008 -0.31543,-0.755372 -0.138352,-0.226878 -0.312668,-0.409495 -0.522949,-0.547851 -0.204758,-0.138336 -0.44548,-0.207509 -0.722168,-0.20752"
+       id="path2818"
+       style="font-size:17px;font-weight:bold;fill:#ffffff;-inkscape-font-specification:Bitstream Vera Sans Bold" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/bkgrnd_greydots.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/bkgrnd_greydots.png
new file mode 100644
index 0000000..2333a6d
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/bkgrnd_greydots.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/bullet_arrowblue.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/bullet_arrowblue.png
new file mode 100644
index 0000000..c235534
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/bullet_arrowblue.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/documentation.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/documentation.png
new file mode 100644
index 0000000..79d0a80
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/documentation.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/dot.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/dot.png
new file mode 100644
index 0000000..36a6859
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/dot.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/dot2.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/dot2.png
new file mode 100644
index 0000000..40aff92
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/dot2.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/green.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/green.png
new file mode 100644
index 0000000..ebb3c24
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/green.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/h1-bg.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/h1-bg.png
new file mode 100644
index 0000000..a2aad24
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/h1-bg.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/image_left.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/image_left.png
new file mode 100644
index 0000000..e8fe7a4
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/image_left.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/image_right.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/image_right.png
new file mode 100644
index 0000000..5b67443
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/image_right.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/important.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/important.png
new file mode 100644
index 0000000..f7594a3
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/important.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/important.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/important.svg
new file mode 100644
index 0000000..2d33045
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/important.svg
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="48"
+   height="48"
+   id="svg5921"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docname="important.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="/home/jfearn/Build/src/fedora/publican/trunk/publican-fedora/en-US/images/important.png"
+   inkscape:export-xdpi="111.32"
+   inkscape:export-ydpi="111.32">
+  <metadata
+     id="metadata2611">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="681"
+     inkscape:window-width="738"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     showgrid="false"
+     inkscape:zoom="11.5"
+     inkscape:cx="20"
+     inkscape:cy="20"
+     inkscape:window-x="0"
+     inkscape:window-y="51"
+     inkscape:current-layer="svg5921" />
+  <defs
+     id="defs5923">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 20 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="40 : 20 : 1"
+       inkscape:persp3d-origin="20 : 13.333333 : 1"
+       id="perspective2613" />
+  </defs>
+  <g
+     transform="matrix(0.4626799,0,0,0.4626799,-5.2934127,-3.3160376)"
+     id="g5485">
+    <path
+       d="M 29.97756,91.885882 L 55.586992,80.409826 L 81.231619,91.807015 L 78.230933,63.90468 L 96.995009,43.037218 L 69.531053,37.26873 L 55.483259,12.974592 L 41.510292,37.311767 L 14.064204,43.164717 L 32.892392,63.97442 L 29.97756,91.885882 z"
+       id="path6799"
+       style="fill:#f3de82;fill-opacity:1;enable-background:new" />
+    <path
+       d="M 55.536215,56.538729 L 55.48324,12.974601 L 41.51028,37.311813 L 55.536215,56.538729 z"
+       id="path6824"
+       style="opacity:0.91005291;fill:#f9f2cb;fill-opacity:1;enable-background:new" />
+    <path
+       d="M 55.57947,56.614318 L 78.241135,63.937979 L 96.976198,43.044318 L 55.57947,56.614318 z"
+       id="use6833"
+       style="opacity:1;fill:#d0bc64;fill-opacity:1;enable-background:new" />
+    <path
+       d="M 55.523838,56.869126 L 55.667994,80.684281 L 81.379011,91.931065 L 55.523838,56.869126 z"
+       id="use6835"
+       style="opacity:1;fill:#e0c656;fill-opacity:1;enable-background:new" />
+    <path
+       d="M 55.283346,56.742618 L 13.877363,43.200977 L 32.640089,64.069652 L 55.283346,56.742618 z"
+       id="use6831"
+       style="opacity:1;fill:#d1ba59;fill-opacity:1;enable-background:new" />
+    <path
+       d="M 55.472076,56.869126 L 55.32792,80.684281 L 29.616903,91.931065 L 55.472076,56.869126 z"
+       id="use6837"
+       style="opacity:1;fill:#d2b951;fill-opacity:1;enable-background:new" />
+    <path
+       d="M 55.57947,56.614318 L 96.976198,43.044318 L 69.504294,37.314027 L 55.57947,56.614318 z"
+       id="path7073"
+       style="opacity:1;fill:#f6e7a3;fill-opacity:1;enable-background:new" />
+    <path
+       d="M 55.523838,56.869126 L 81.379011,91.931065 L 78.214821,64.046881 L 55.523838,56.869126 z"
+       id="path7075"
+       style="opacity:1;fill:#f6e7a3;fill-opacity:1;enable-background:new" />
+    <path
+       d="M 55.283346,56.742618 L 41.341708,37.434209 L 13.877363,43.200977 L 55.283346,56.742618 z"
+       id="path7077"
+       style="opacity:1;fill:#f6e59d;fill-opacity:1;enable-background:new" />
+    <path
+       d="M 55.472076,56.869126 L 29.616903,91.931065 L 32.781093,64.046881 L 55.472076,56.869126 z"
+       id="path7079"
+       style="opacity:1;fill:#f3df8b;fill-opacity:1;enable-background:new" />
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/logo.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/logo.png
new file mode 100644
index 0000000..66a3104
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/logo.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/note.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/note.png
new file mode 100644
index 0000000..d6c4518
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/note.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/note.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/note.svg
new file mode 100644
index 0000000..70e43b6
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/note.svg
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="48"
+   height="48"
+   id="svg5921"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docname="note.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="/home/jfearn/Build/src/fedora/publican/trunk/publican-fedora/en-US/images/note.png"
+   inkscape:export-xdpi="111.32"
+   inkscape:export-ydpi="111.32">
+  <metadata
+     id="metadata16">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="1024"
+     inkscape:window-width="1205"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     showgrid="false"
+     inkscape:zoom="11.5"
+     inkscape:cx="22.217181"
+     inkscape:cy="20"
+     inkscape:window-x="334"
+     inkscape:window-y="51"
+     inkscape:current-layer="svg5921" />
+  <defs
+     id="defs5923">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 20 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="40 : 20 : 1"
+       inkscape:persp3d-origin="20 : 13.333333 : 1"
+       id="perspective18" />
+  </defs>
+  <g
+     transform="matrix(0.468275,0,0,0.468275,-5.7626904,-7.4142703)"
+     id="layer1">
+    <g
+       transform="matrix(0.115136,0,0,0.115136,9.7283,21.77356)"
+       id="g8014"
+       style="enable-background:new">
+      <g
+         id="g8518"
+         style="opacity:1">
+        <path
+           d="M -2512.4524,56.33197 L 3090.4719,56.33197 L 3090.4719,4607.3813 L -2512.4524,4607.3813 L -2512.4524,56.33197 z"
+           transform="matrix(0.1104659,-2.3734892e-2,2.2163258e-2,0.1031513,308.46782,74.820675)"
+           id="rect8018"
+           style="fill:#ffe680;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.1;stroke-linecap:butt;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
+      </g>
+      <g
+         transform="matrix(0.5141653,-7.1944682e-2,7.1944682e-2,0.5141653,146.04015,-82.639785)"
+         id="g8020">
+        <path
+           d="M 511.14114,441.25315 C 527.3248,533.52772 464.31248,622.82928 370.39916,640.71378 C 276.48584,658.59828 187.23462,598.29322 171.05095,506.01865 C 154.86728,413.74408 217.8796,324.44253 311.79292,306.55803 C 405.70624,288.67353 494.95747,348.97858 511.14114,441.25315 z"
+           id="path8022"
+           style="opacity:1;fill:#e0c96f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.0804934;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <path
+           d="M 527.8214,393.1416 C 527.8214,461.31268 472.55783,516.57625 404.38675,516.57625 C 336.21567,516.57625 280.9521,461.31268 280.9521,393.1416 C 280.9521,324.97052 336.21567,269.70695 404.38675,269.70695 C 472.55783,269.70695 527.8214,324.97052 527.8214,393.1416 z"
+           transform="matrix(1.2585415,-0.2300055,0.2168789,1.1867072,-248.76141,68.254424)"
+           id="path8024"
+           style="opacity:1;fill:#c00000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.0804934;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <path
+           d="M 358.5625,281.15625 C 348.09597,281.05155 337.43773,281.94729 326.71875,283.90625 C 240.96686,299.57789 183.37901,377.92385 198.15625,458.78125 C 209.70749,521.98673 262.12957,567.92122 325.40625,577.5625 L 357.25,433.6875 L 509.34375,405.875 C 509.14405,404.58166 509.0804,403.29487 508.84375,402 C 495.91366,331.24978 431.82821,281.88918 358.5625,281.15625 z"
+           id="path8026"
+           style="opacity:1;fill:#b60000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.1;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <path
+           d="M 294.2107,361.9442 L 282.79367,370.38482 L 261.73414,386.13346 C 253.13706,404.40842 254.3359,423.7989 259.7176,444.39774 C 273.6797,497.83861 313.42636,523.96124 369.50989,517.58957 C 398.21848,514.32797 424.51832,504.67345 440.64696,484.15958 L 469.89512,447.48298 L 294.2107,361.9442 z"
+           id="path8028"
+           style="fill:#750000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.09999999;stroke-linecap:butt;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
+        <path
+           d="M 527.8214,393.1416 C 527.8214,461.31268 472.55783,516.57625 404.38675,516.57625 C 336.21567,516.57625 280.9521,461.31268 280.9521,393.1416 C 280.9521,324.97052 336.21567,269.70695 404.38675,269.70695 C 472.55783,269.70695 527.8214,324.97052 527.8214,393.1416 z"
+           transform="matrix(0.9837071,-0.1797787,0.1695165,0.9275553,-78.013985,79.234385)"
+           id="path8030"
+           style="opacity:1;fill:#d40000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.10298239;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <path
+           d="M 527.8214,393.1416 C 527.8214,461.31268 472.55783,516.57625 404.38675,516.57625 C 336.21567,516.57625 280.9521,461.31268 280.9521,393.1416 C 280.9521,324.97052 336.21567,269.70695 404.38675,269.70695 C 472.55783,269.70695 527.8214,324.97052 527.8214,393.1416 z"
+           transform="matrix(0.9837071,-0.1797787,0.1695165,0.9275553,-69.306684,71.273294)"
+           id="path8032"
+           style="opacity:1;fill:#e11212;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.10298239;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      </g>
+    </g>
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/red.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/red.png
new file mode 100644
index 0000000..d32d5e2
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/red.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/shade.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/shade.png
new file mode 100644
index 0000000..a73afdf
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/shade.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/shine.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/shine.png
new file mode 100644
index 0000000..a18f7c4
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/shine.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/stock-go-back.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/stock-go-back.png
new file mode 100644
index 0000000..d320f26
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/stock-go-back.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/stock-go-forward.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/stock-go-forward.png
new file mode 100644
index 0000000..1ee5a29
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/stock-go-forward.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/stock-go-up.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/stock-go-up.png
new file mode 100644
index 0000000..1cd7332
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/stock-go-up.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/stock-home.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/stock-home.png
new file mode 100644
index 0000000..122536d
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/stock-home.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/title_logo.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/title_logo.png
new file mode 100644
index 0000000..d5182b4
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/title_logo.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/title_logo.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/title_logo.svg
new file mode 100644
index 0000000..e8fd52b
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/title_logo.svg
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   version="1.0"
+   width="220"
+   height="70"
+   id="svg6180">
+  <defs
+     id="defs6182" />
+  <g
+     transform="translate(-266.55899,-345.34488)"
+     id="layer1">
+    <path
+       d="m 316.7736,397.581 c 0,0 0,0 -20.53889,0 0.3327,4.45245 3.92157,7.77609 8.70715,7.77609 3.38983,0 6.31456,-1.39616 8.64094,-3.65507 0.46553,-0.46679 0.99726,-0.59962 1.59519,-0.59962 0.79781,0 1.59561,0.39932 2.12692,1.06388 0.3327,0.46553 0.53216,0.99726 0.53216,1.52857 0,0.73118 -0.3327,1.52857 -0.93106,2.12734 -2.7919,2.99052 -7.51086,4.98503 -12.16403,4.98503 -8.44149,0 -15.22074,-6.77967 -15.22074,-15.22158 0,-8.44149 6.58022,-15.22074 15.02171,-15.22074 8.37529,0 14.62323,6.51317 14.62323,15.08749 0,1.26418 -1.12924,2.12861 -2.39258,2.12861 z m -12.23065,-11.76512 c -4.45329,0 -7.51085,2.92473 -8.17499,7.17731 10.03626,0 16.35083,0 16.35083,0 -0.59836,-4.05355 -3.78874,-7.17731 -8.17584,-7.17731 z"
+       id="path11"
+       style="fill:#3c6eb4" />
+    <path
+       d="m 375.46344,410.80807 c -8.44106,0 -15.22074,-6.77968 -15.22074,-15.22159 0,-8.44149 6.77968,-15.22074 15.22074,-15.22074 8.44234,0 15.22159,6.77925 15.22159,15.22074 -4.2e-4,8.44149 -6.77968,15.22159 -15.22159,15.22159 z m 0,-24.65992 c -5.31688,0 -8.77377,4.25427 -8.77377,9.43833 0,5.18364 3.45689,9.43833 8.77377,9.43833 5.31731,0 8.77504,-4.25469 8.77504,-9.43833 -4.2e-4,-5.18406 -3.45773,-9.43833 -8.77504,-9.43833 z"
+       id="path13"
+       style="fill:#3c6eb4" />
+    <path
+       d="m 412.66183,380.36574 c -4.45963,0 -7.40966,1.319 -10.01391,4.62956 l -0.24036,-1.53995 0,0 c -0.20198,-1.60743 -1.57326,-2.84926 -3.23382,-2.84926 -1.80139,0 -3.26206,1.459 -3.26206,3.26081 0,0.003 0,0.005 0,0.008 l 0,0 0,0.003 0,0 0,23.40712 c 0,1.79464 1.46194,3.25743 3.257,3.25743 1.79465,0 3.25744,-1.46279 3.25744,-3.25743 l 0,-12.56209 c 0,-5.71621 4.98502,-8.57432 10.23613,-8.57432 1.59519,0 2.85726,-1.32953 2.85726,-2.92515 0,-1.59561 -1.26207,-2.85726 -2.85768,-2.85726 z"
+       id="path15"
+       style="fill:#3c6eb4" />
+    <path
+       d="m 447.02614,395.58648 c 0.0666,-8.17541 -5.78326,-15.22074 -15.222,-15.22074 -8.44192,0 -15.28779,6.77925 -15.28779,15.22074 0,8.44191 6.64684,15.22159 14.68985,15.22159 4.01434,0 7.62682,-2.06621 9.23846,-4.22518 l 0.79359,2.01434 0,0 c 0.42589,1.13177 1.5176,1.93717 2.7978,1.93717 1.65001,0 2.98756,-1.33671 2.99009,-2.98545 l 0,0 0,-7.80687 0,0 0,-4.1556 z m -15.222,9.43833 c -5.31773,0 -8.77419,-4.25469 -8.77419,-9.43833 0,-5.18406 3.45604,-9.43833 8.77419,-9.43833 5.3173,0 8.77419,4.25427 8.77419,9.43833 0,5.18364 -3.45689,9.43833 -8.77419,9.43833 z"
+       id="path17"
+       style="fill:#3c6eb4" />
+    <path
+       d="m 355.01479,368.3337 c 0,-1.7938 -1.46194,-3.18997 -3.25659,-3.18997 -1.79422,0 -3.25743,1.39659 -3.25743,3.18997 l 0,17.1499 c -1.66097,-3.05756 -5.25026,-5.11786 -9.50495,-5.11786 -8.64052,0 -14.42336,6.51318 -14.42336,15.22074 0,8.70757 5.98229,15.22159 14.42336,15.22159 3.76555,0 7.03057,-1.55429 8.98587,-4.25554 l 0.72317,1.83428 c 0.44782,1.25912 1.64917,2.16024 3.06051,2.16024 1.78621,0 3.24984,-1.45435 3.24984,-3.24815 0,-0.005 0,-0.009 0,-0.0139 l 0,0 0,-38.95128 -4.2e-4,0 z m -15.22116,36.69111 c -5.31731,0 -8.70715,-4.25469 -8.70715,-9.43833 0,-5.18406 3.38984,-9.43833 8.70715,-9.43833 5.31773,0 8.70714,4.0544 8.70714,9.43833 0,5.38309 -3.38941,9.43833 -8.70714,9.43833 z"
+       id="path19"
+       style="fill:#3c6eb4" />
+    <path
+       d="m 287.21553,365.34023 c -0.59414,-0.0877 -1.19966,-0.13198 -1.80097,-0.13198 -6.73118,0 -12.20746,5.4767 -12.20746,12.20788 l 0,3.8132 -3.98903,0 c -1.46237,0 -2.65908,1.19671 -2.65908,2.65781 0,1.46321 1.19671,2.93738 2.65908,2.93738 l 3.98819,0 0,20.46004 c 0,1.79464 1.46236,3.25743 3.25658,3.25743 1.79507,0 3.25744,-1.46279 3.25744,-3.25743 l 0,-20.46004 4.40986,0 c 1.46194,0 2.65823,-1.47417 2.65823,-2.93738 0,-1.46152 -1.19629,-2.65823 -2.65823,-2.65823 l -4.40733,0 0,-3.8132 c 0,-3.13852 2.55323,-6.11469 5.69175,-6.11469 0.28294,0 0.56757,0.0211 0.84672,0.062 1.78031,0.26355 3.4358,-0.54269 3.70019,-2.32342 0.2627,-1.77904 -0.96606,-3.43538 -2.74594,-3.69935 z"
+       id="path21"
+       style="fill:#3c6eb4" />
+    <path
+       d="m 482.01243,363.57426 c 0,-10.06788 -8.16108,-18.22938 -18.22897,-18.22938 -10.06282,0 -18.22179,8.15475 -18.22854,18.21631 l -4.2e-4,-4.2e-4 0,14.1071 4.2e-4,4.2e-4 c 0.005,2.28463 1.85832,4.13409 4.14463,4.13409 0.007,0 0.0127,-8.4e-4 0.0194,-8.4e-4 l 0.001,8.4e-4 14.07083,0 0,0 c 10.06409,-0.004 18.22138,-8.16276 18.22138,-18.22812 z"
+       id="path25"
+       style="fill:#294172" />
+    <path
+       d="m 469.13577,349.66577 c -4.72528,0 -8.55576,3.83049 -8.55576,8.55577 0,0.002 0,0.004 0,0.006 l 0,4.52836 -4.51444,0 c -8.5e-4,0 -8.5e-4,0 -0.001,0 -4.72528,0 -8.55576,3.81193 -8.55576,8.53678 0,4.72528 3.83048,8.55577 8.55576,8.55577 4.72486,0 8.55534,-3.83049 8.55534,-8.55577 0,-0.002 0,-0.004 0,-0.006 l 0,-4.54733 4.51444,0 c 8.5e-4,0 0.001,0 0.002,0 4.72486,0 8.55534,-3.79296 8.55534,-8.51781 0,-4.72528 -3.83048,-8.55577 -8.55534,-8.55577 z m -8.55576,21.63483 c -0.004,2.48998 -2.02446,4.50811 -4.51571,4.50811 -2.49378,0 -4.53426,-2.02193 -4.53426,-4.5157 0,-2.49421 2.04048,-4.55366 4.53426,-4.55366 0.002,0 0.004,4.2e-4 0.006,4.2e-4 l 3.86971,0 c 0.001,0 0.002,-4.2e-4 0.003,-4.2e-4 0.35209,0 0.63799,0.28505 0.63799,0.63715 0,4.2e-4 -4.2e-4,8.4e-4 -4.2e-4,0.001 l 0,3.92284 -4.2e-4,0 z m 8.55534,-8.5448 c -0.001,0 -0.003,0 -0.004,0 l -3.87223,0 c -8.4e-4,0 -0.002,0 -0.002,0 -0.35252,0 -0.63757,-0.28506 -0.63757,-0.63758 l 0,-4.2e-4 0,-3.90343 c 0.004,-2.49083 2.02
 446,-4.50854 4.51571,-4.50854 2.49378,0 4.53468,2.02193 4.53468,4.51613 4.2e-4,2.49336 -2.04048,4.53384 -4.53426,4.53384 z"
+       id="path29"
+       style="fill:#3c6eb4" />
+    <path
+       d="m 460.58001,362.7558 0,-4.52836 c 0,-0.002 0,-0.004 0,-0.006 0,-4.72528 3.83048,-8.55577 8.55576,-8.55577 0.71685,0 1.22623,0.0805 1.88952,0.25469 0.96774,0.25385 1.75796,1.04618 1.75838,1.96922 4.2e-4,1.11575 -0.80919,1.92621 -2.0194,1.92621 -0.57642,0 -0.78473,-0.11048 -1.62892,-0.11048 -2.49125,0 -4.51149,2.01771 -4.51571,4.50854 l 0,3.90385 0,4.2e-4 c 0,0.35252 0.28505,0.63758 0.63757,0.63758 4.3e-4,0 0.001,0 0.002,0 l 2.96521,0 c 1.10521,0 1.99747,0.88467 1.99832,1.99283 0,1.10816 -0.89353,1.99114 -1.99832,1.99114 l -3.60489,0 0,4.54733 c 0,0.002 0,0.004 0,0.006 0,4.72485 -3.83048,8.55534 -8.55534,8.55534 -0.71684,0 -1.22623,-0.0805 -1.88952,-0.25469 -0.96774,-0.25343 -1.75838,-1.04618 -1.7588,-1.9688 0,-1.11575 0.80919,-1.92663 2.01982,-1.92663 0.576,0 0.78473,0.11048 1.6285,0.11048 2.49125,0 4.51191,-2.01771 4.51613,-4.50811 0,0 0,-3.92368 0,-3.9241 0,-0.35168 -0.2859,-0.63673 -0.63799,-0.63673 -4.3e-4,0 -8.5e-4,0 -0.002,0 l -2.96521,-4.2e-4 c -1.10521,0 -1.
 99831,-0.88214 -1.99831,-1.9903 -4.3e-4,-1.11533 0.90238,-1.99367 2.01939,-1.99367 l 3.58339,0 0,0 z"
+       id="path31"
+       style="fill:#ffffff" />
+    <path
+       d="m 477.41661,378.55292 2.81558,0 0,0.37898 -1.18152,0 0,2.94935 -0.45254,0 0,-2.94935 -1.18152,0 0,-0.37898 m 3.26144,0 0.67101,0 0.84937,2.26496 0.85381,-2.26496 0.67102,0 0,3.32833 -0.43917,0 0,-2.9226 -0.85828,2.28279 -0.45255,0 -0.85827,-2.28279 0,2.9226 -0.43694,0 0,-3.32833"
+       id="text6223"
+       style="fill:#294172;enable-background:new" />
+  </g>
+  <path
+     d="m 181.98344,61.675273 2.81558,0 0,0.37898 -1.18152,0 0,2.94935 -0.45254,0 0,-2.94935 -1.18152,0 0,-0.37898 m 3.26144,0 0.67101,0 0.84937,2.26496 0.85381,-2.26496 0.67102,0 0,3.32833 -0.43917,0 0,-2.9226 -0.85828,2.28279 -0.45255,0 -0.85827,-2.28279 0,2.9226 -0.43694,0 0,-3.32833"
+     id="path2391"
+     style="fill:#294172;enable-background:new" />
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/warning.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/warning.png
new file mode 100644
index 0000000..ce09951
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/warning.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/warning.svg b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/warning.svg
new file mode 100644
index 0000000..5f2612c
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/warning.svg
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="48"
+   height="48"
+   id="svg5921"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docname="warning.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="/home/jfearn/Build/src/fedora/publican/trunk/publican-fedora/en-US/images/warning.png"
+   inkscape:export-xdpi="111.32"
+   inkscape:export-ydpi="111.32">
+  <metadata
+     id="metadata2482">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="910"
+     inkscape:window-width="1284"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     showgrid="false"
+     inkscape:zoom="11.5"
+     inkscape:cx="20"
+     inkscape:cy="20"
+     inkscape:window-x="0"
+     inkscape:window-y="51"
+     inkscape:current-layer="svg5921" />
+  <defs
+     id="defs5923">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 20 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="40 : 20 : 1"
+       inkscape:persp3d-origin="20 : 13.333333 : 1"
+       id="perspective2484" />
+  </defs>
+  <g
+     transform="matrix(0.4536635,0,0,0.4536635,-5.1836431,-4.6889387)"
+     id="layer1">
+    <g
+       transform="translate(2745.6887,-1555.5977)"
+       id="g8304"
+       style="enable-background:new">
+      <path
+         d="M -1603,1054.4387 L -1577.0919,1027.891 L -1540,1027.4387 L -1513.4523,1053.3468 L -1513,1090.4387 L -1538.9081,1116.9864 L -1576,1117.4387 L -1602.5477,1091.5306 L -1603,1054.4387 z"
+         transform="matrix(0.8233528,8.9983906e-3,-8.9983906e-3,0.8233528,-1398.5561,740.7914)"
+         id="path8034"
+         style="opacity:1;fill:#efd259;fill-opacity:1;stroke:#efd259;stroke-opacity:1" />
+      <path
+         d="M -1603,1054.4387 L -1577.0919,1027.891 L -1540,1027.4387 L -1513.4523,1053.3468 L -1513,1090.4387 L -1538.9081,1116.9864 L -1576,1117.4387 L -1602.5477,1091.5306 L -1603,1054.4387 z"
+         transform="matrix(0.6467652,7.0684723e-3,-7.0684723e-3,0.6467652,-1675.7492,927.16391)"
+         id="path8036"
+         style="opacity:1;fill:#a42324;fill-opacity:1;stroke:#a42324;stroke-opacity:1" />
+      <path
+         d="M -2686.7886,1597.753 C -2686.627,1596.5292 -2686.5462,1595.6987 -2686.5462,1595.218 C -2686.5462,1593.1637 -2688.0814,1592.0711 -2690.9899,1592.0711 C -2693.8985,1592.0711 -2695.4336,1593.12 -2695.4336,1595.218 C -2695.4336,1595.961 -2695.3528,1596.7914 -2695.1912,1597.753 L -2692.929,1614.4491 L -2689.0508,1614.4491 L -2686.7886,1597.753"
+         id="path8038"
+         style="font-size:107.13574219px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Charter" />
+      <path
+         d="M -2690.9899,1617.8197 C -2693.6124,1617.8197 -2695.8118,1619.9346 -2695.8118,1622.6416 C -2695.8118,1625.3486 -2693.6124,1627.4635 -2690.9899,1627.4635 C -2688.2829,1627.4635 -2686.168,1625.264 -2686.168,1622.6416 C -2686.168,1619.9346 -2688.2829,1617.8197 -2690.9899,1617.8197"
+         id="path8040"
+         style="font-size:107.13574219px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Charter" />
+    </g>
+  </g>
+</svg>
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/watermark-draft.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/watermark-draft.png
new file mode 100644
index 0000000..0ead5af
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/watermark-draft.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/yellow.png b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/yellow.png
new file mode 100644
index 0000000..223865d
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/Common_Content/images/yellow.png differ
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/appe-UEFI_Secure_Boot_Guide-Revision_History.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/appe-UEFI_Secure_Boot_Guide-Revision_History.html
new file mode 100644
index 0000000..0646433
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/appe-UEFI_Secure_Boot_Guide-Revision_History.html
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Appendix A. Revision History</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="index.html" title="Defensive Coding" /><link rel="prev" href="sect-Defensive_Coding-TLS-Client-Python.html" title="12.2.5. Implementing TLS Clients With Python" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-TLS-Client-Python.html"><strong>Prev</strong></a></li><li class="next"></li></ul><div xml:lang="en-US" class="appendix" id="appe-UEFI_Secure_B
 oot_Guide-Revision_History" lang="en-US"><div class="titlepage"><div><div><h1 class="title">Revision History</h1></div></div></div><div class="para">
+		<div class="revhistory"><table summary="Revision History"><tr><th align="left" valign="top" colspan="3"><strong>Revision History</strong></th></tr><tr><td align="left">Revision 0-1</td><td align="left">Thu Mar 7 2013</td><td align="left"><span class="author"><span class="firstname">Eric</span> <span class="surname">Christensen</span></span></td></tr><tr><td align="left" colspan="3">
+					<table border="0" summary="Simple list" class="simplelist"><tr><td>Initial publication.</td></tr></table>
+
+				</td></tr></table></div>
+
+	</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-TLS-Client-Python.html"><strong>Prev</strong>12.2.5. Implementing TLS Clients With Python</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch01s03s04.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch01s03s04.html
new file mode 100644
index 0000000..c91021b
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch01s03s04.html
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>1.3.4. Custom memory allocators</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="sect-Defensive_Coding-C-Allocators.html" title="1.3. Memory allocators" /><link rel="prev" href="sect-Defensive_Coding-C-Allocators-Arrays.html" title="1.3.3. Array allocation" /><link rel="next" href="ch01s03s05.html" title="1.3.5. Conservative garbage collection" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-C-Allocators-Arrays.html"><strong>P
 rev</strong></a></li><li class="next"><a accesskey="n" href="ch01s03s05.html"><strong>Next</strong></a></li></ul><div class="section" id="idp14476096"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idp14476096">1.3.4. Custom memory allocators</h3></div></div></div><div class="para">
+			Custom memory allocates come in two forms: replacements for <code class="function">malloc</code>, and completely different interfaces for memory management. Both approaches can reduce the effectiveness of <span class="application"><strong>valgrind</strong></span> and similar tools, and the heap corruption detection provided by GNU libc, so they should be avoided.
+		</div><div class="para">
+			Memory allocators are difficult to write and contain many performance and security pitfalls.
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					When computing array sizes or rounding up allocation requests (to the next allocation granularity, or for alignment purposes), checks for arithmetic overflow are required.
+				</div></li><li class="listitem"><div class="para">
+					Size computations for array allocations need overflow checking. See <a class="xref" href="sect-Defensive_Coding-C-Allocators-Arrays.html">Section 1.3.3, “Array allocation”</a>.
+				</div></li><li class="listitem"><div class="para">
+					It can be difficult to beat well-tuned general-purpose allocators. In micro-benchmarks, pool allocators can show huge wins, and size-specific pools can reduce internal fragmentation. But often, utilization of individual pools is poor, and
+				</div></li></ul></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-C-Allocators-Arrays.html"><strong>Prev</strong>1.3.3. Array allocation</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="ch01s03s05.html"><strong>Next</strong>1.3.5. Conservative garbage collection</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch01s03s05.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch01s03s05.html
new file mode 100644
index 0000000..935a44c
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch01s03s05.html
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>1.3.5. Conservative garbage collection</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="sect-Defensive_Coding-C-Allocators.html" title="1.3. Memory allocators" /><link rel="prev" href="ch01s03s04.html" title="1.3.4. Custom memory allocators" /><link rel="next" href="chap-Defensive_Coding-CXX.html" title="Chapter 2. The C++ Programming Language" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="ch01s03s04.html"><strong>Prev</strong></a></li><li class="next"
 ><a accesskey="n" href="chap-Defensive_Coding-CXX.html"><strong>Next</strong></a></li></ul><div class="section" id="idp14957472"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idp14957472">1.3.5. Conservative garbage collection</h3></div></div></div><div class="para">
+			Garbage collection can be an alternative to explicit memory management using <code class="function">malloc</code> and <code class="function">free</code>. The Boehm-Dehmers-Weiser allocator can be used from C programs, with minimal type annotations. Performance is competitive with <code class="function">malloc</code> on 64-bit architectures, especially for multi-threaded programs. The stop-the-world pauses may be problematic for some real-time applications, though.
+		</div><div class="para">
+			However, using a conservative garbage collector may reduce opertunities for code reduce because once one library in a program uses garbage collection, the whole process memory needs to be subject to it, so that no pointers are missed. The Boehm-Dehmers-Weiser collector also reserves certain signals for internal use, so it is not fully transparent to the rest of the program.
+		</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="ch01s03s04.html"><strong>Prev</strong>1.3.4. Custom memory allocators</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="chap-Defensive_Coding-CXX.html"><strong>Next</strong>Chapter 2. The C++ Programming Language</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch03s02.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch03s02.html
new file mode 100644
index 0000000..e043208
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch03s02.html
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>3.2. Run-time compilation and code generation</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="chap-Defensive_Coding-Python.html" title="Chapter 3. The Python Programming Language" /><link rel="prev" href="chap-Defensive_Coding-Python.html" title="Chapter 3. The Python Programming Language" /><link rel="next" href="ch03s03.html" title="3.3. Sandboxing" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="chap-Defensive_Coding-Python.html"><strong>Prev</strong></a><
 /li><li class="next"><a accesskey="n" href="ch03s03.html"><strong>Next</strong></a></li></ul><div class="section" id="idp19842240"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idp19842240">3.2. Run-time compilation and code generation</h2></div></div></div><div class="para">
+			The following Python functions and statements related to code execution should be avoided:
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					<code class="function">compile</code>
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">eval</code>
+				</div></li><li class="listitem"><div class="para">
+					<code class="literal">exec</code>
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">execfile</code>
+				</div></li></ul></div><div class="para">
+			If you need to parse integers or floating point values, use the <code class="function">int</code> and <code class="function">float</code> functions instead of <code class="function">eval</code>. Sandboxing untrusted Python code does not work reliably.
+		</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="chap-Defensive_Coding-Python.html"><strong>Prev</strong>Chapter 3. The Python Programming Language</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="ch03s03.html"><strong>Next</strong>3.3. Sandboxing</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch03s03.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch03s03.html
new file mode 100644
index 0000000..53f7f3f
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch03s03.html
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>3.3. Sandboxing</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="chap-Defensive_Coding-Python.html" title="Chapter 3. The Python Programming Language" /><link rel="prev" href="ch03s02.html" title="3.2. Run-time compilation and code generation" /><link rel="next" href="pt02.html" title="Part II. Specific Programming Tasks" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="ch03s02.html"><strong>Prev</strong></a></li><li class="next"><
 a accesskey="n" href="pt02.html"><strong>Next</strong></a></li></ul><div class="section" id="idp21779456"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idp21779456">3.3. Sandboxing</h2></div></div></div><div class="para">
+			The <code class="literal">rexec</code> Python module cannot safely sandbox untrusted code and should not be used. The standard CPython implementation is not suitable for sandboxing.
+		</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="ch03s02.html"><strong>Prev</strong>3.2. Run-time compilation and code generation</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="pt02.html"><strong>Next</strong>Part II. Specific Programming Tasks</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch04s02.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch04s02.html
new file mode 100644
index 0000000..a2e2c00
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch04s02.html
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>4.2. Object orientation</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="chap-Defensive_Coding-Tasks-Library_Design.html" title="Chapter 4. Library Design" /><link rel="prev" href="chap-Defensive_Coding-Tasks-Library_Design.html" title="Chapter 4. Library Design" /><link rel="next" href="sect-Defensive_Coding-Tasks-Library_Design-Callbacks.html" title="4.3. Callbacks" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="chap-Defensive_Coding-T
 asks-Library_Design.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-Library_Design-Callbacks.html"><strong>Next</strong></a></li></ul><div class="section" id="idp22852544"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idp22852544">4.2. Object orientation</h2></div></div></div><div class="para">
+			Classes should be either designed as base classes, or it should be impossible to use them as base classes (like <code class="literal">final</code> classes in Java). Classes which are not designed for inheritance and are used as base classes nevertheless create potential maintenance hazards because it is difficult to predict how client code will react when calls to virtual methods are added, reordered or removed.
+		</div><div class="para">
+			Virtual member functions can be used as callbacks. See <a class="xref" href="sect-Defensive_Coding-Tasks-Library_Design-Callbacks.html">Section 4.3, “Callbacks”</a> for some of the challenges involved.
+		</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="chap-Defensive_Coding-Tasks-Library_Design.html"><strong>Prev</strong>Chapter 4. Library Design</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-Library_Design-Callbacks.html"><strong>Next</strong>4.3. Callbacks</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch04s04.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch04s04.html
new file mode 100644
index 0000000..7f2249c
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch04s04.html
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>4.4. Process attributes</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="chap-Defensive_Coding-Tasks-Library_Design.html" title="Chapter 4. Library Design" /><link rel="prev" href="sect-Defensive_Coding-Tasks-Library_Design-Callbacks.html" title="4.3. Callbacks" /><link rel="next" href="sect-Defensive_Coding-Tasks-Descriptors.html" title="Chapter 5. File Descriptor Management" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive
 _Coding-Tasks-Library_Design-Callbacks.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-Descriptors.html"><strong>Next</strong></a></li></ul><div class="section" id="idp22393984"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idp22393984">4.4. Process attributes</h2></div></div></div><div class="para">
+			Several attributes are global and affect all code in the process, not just the library that manipulates them.
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					environment variables (see <a class="xref" href="ch08s03.html#sect-Defensive_Coding-Tasks-secure_getenv">Section 8.3.1, “Accessing environment variables”</a>)
+				</div></li><li class="listitem"><div class="para">
+					umask
+				</div></li><li class="listitem"><div class="para">
+					user IDs, group IDs and capabilities
+				</div></li><li class="listitem"><div class="para">
+					current working directory
+				</div></li><li class="listitem"><div class="para">
+					signal handlers, signal masks and signal delivery
+				</div></li><li class="listitem"><div class="para">
+					file locks (especially <code class="function">fcntl</code> locks behave in surprising ways, not just in a multi-threaded environment)
+				</div></li></ul></div><div class="para">
+			Library code should avoid manipulating these global process attributes. It should not rely on environment variables, umask, the current working directory and signal masks because these attributes can be inherted from an untrusted source.
+		</div><div class="para">
+			In addition, there are obvious process-wide aspects such as the virtual memory layout, the set of open files and dynamic shared objects, but with the exception of shared objects, these can be manipulated in a relatively isolated way.
+		</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-Tasks-Library_Design-Callbacks.html"><strong>Prev</strong>4.3. Callbacks</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-Descriptors.html"><strong>Next</strong>Chapter 5. File Descriptor Management</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch07s02.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch07s02.html
new file mode 100644
index 0000000..a5b3dbf
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch07s02.html
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>7.2. Named temporary files</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="chap-Defensive_Coding-Tasks-Temporary_Files.html" title="Chapter 7. Temporary files" /><link rel="prev" href="chap-Defensive_Coding-Tasks-Temporary_Files.html" title="Chapter 7. Temporary files" /><link rel="next" href="ch07s03.html" title="7.3. Temporary files without names" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="chap-Defensive_Coding-Tasks-Temporary_Files.
 html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="ch07s03.html"><strong>Next</strong></a></li></ul><div class="section" id="idp20497120"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idp20497120">7.2. Named temporary files</h2></div></div></div><div class="para">
+			The <code class="function">mkostemp</code> function creates a named temporary file. You should specify the <code class="literal">O_CLOEXEC</code> flag to avoid file descriptor leaks to subprocesses. (Applications which do not use multiple threads can also use <code class="function">mkstemp</code>, but libraries should use <code class="function">mkostemp</code>.) For determining the directory part of the file name pattern, see <a class="xref" href="chap-Defensive_Coding-Tasks-Temporary_Files.html#chap-Defensive_Coding-Tasks-Temporary_Files-Location">Section 7.1, “Obtaining the location of temporary directory”</a>.
+		</div><div class="para">
+			The file is not removed automatically. It is not safe to rename or delete the file before processing, or transform the name in any way (for example, by adding a file extension). If you need multiple temporary files, call <code class="function">mkostemp</code> multiple times. Do not create additional file names derived from the name provided by a previous <code class="function">mkostemp</code> call. However, it is safe to close the descriptor returned by <code class="function">mkostemp</code> and reopen the file using the generated name.
+		</div><div class="para">
+			The Python class <code class="literal">tempfile.NamedTemporaryFile</code> provides similar functionality, except that the file is deleted automatically by default. Note that you may have to use the <code class="literal">file</code> attribute to obtain the actual file object because some programming interfaces cannot deal with file-like objects. The C function <code class="function">mkostemp</code> is also available as <code class="function">tempfile.mkstemp</code>.
+		</div><div class="para">
+			In Java, you can use the <code class="function">java.io.File.createTempFile(String, String, File)</code> function, using the temporary file location determined according to <a class="xref" href="chap-Defensive_Coding-Tasks-Temporary_Files.html#chap-Defensive_Coding-Tasks-Temporary_Files-Location">Section 7.1, “Obtaining the location of temporary directory”</a>. Do not use <code class="function">java.io.File.deleteOnExit()</code> to delete temporary files, and do not register a shutdown hook for each temporary file you create. In both cases, the deletion hint cannot be removed from the system if you delete the temporary file prior to termination of the VM, causing a memory leak.
+		</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="chap-Defensive_Coding-Tasks-Temporary_Files.html"><strong>Prev</strong>Chapter 7. Temporary files</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="ch07s03.html"><strong>Next</strong>7.3. Temporary files without names</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch07s03.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch07s03.html
new file mode 100644
index 0000000..ad18006
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch07s03.html
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>7.3. Temporary files without names</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="chap-Defensive_Coding-Tasks-Temporary_Files.html" title="Chapter 7. Temporary files" /><link rel="prev" href="ch07s02.html" title="7.2. Named temporary files" /><link rel="next" href="chap-Defensive_Coding-Tasks-Temporary_Directory.html" title="7.4. Temporary directories" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="ch07s02.html"><strong>Prev</strong></a></li><li c
 lass="next"><a accesskey="n" href="chap-Defensive_Coding-Tasks-Temporary_Directory.html"><strong>Next</strong></a></li></ul><div class="section" id="idp25638176"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idp25638176">7.3. Temporary files without names</h2></div></div></div><div class="para">
+			The <code class="function">tmpfile</code> function creates a temporary file and immediately deletes it, while keeping the file open. As a result, the file lacks a name and its space is deallocated as soon as the file descriptor is closed (including the implicit close when the process terminates). This avoids cluttering the temporary directory with orphaned files.
+		</div><div class="para">
+			Alternatively, if the maximum size of the temporary file is known beforehand, the <code class="function">fmemopen</code> function can be used to create a <code class="literal">FILE *</code> object which is backed by memory.
+		</div><div class="para">
+			In Python, unnamed temporary files are provided by the <code class="literal">tempfile.TemporaryFile</code> class, and the <code class="literal">tempfile.SpooledTemporaryFile</code> class provides a way to avoid creation of small temporary files.
+		</div><div class="para">
+			Java does not support unnamed temporary files.
+		</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="ch07s02.html"><strong>Prev</strong>7.2. Named temporary files</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="chap-Defensive_Coding-Tasks-Temporary_Directory.html"><strong>Next</strong>7.4. Temporary directories</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch07s05.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch07s05.html
new file mode 100644
index 0000000..0326701
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch07s05.html
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>7.5. Compensating for unsafe file creation</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="chap-Defensive_Coding-Tasks-Temporary_Files.html" title="Chapter 7. Temporary files" /><link rel="prev" href="chap-Defensive_Coding-Tasks-Temporary_Directory.html" title="7.4. Temporary directories" /><link rel="next" href="sect-Defensive_Coding-Tasks-Processes.html" title="Chapter 8. Processes" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="chap-Defensive_Coding-Ta
 sks-Temporary_Directory.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-Processes.html"><strong>Next</strong></a></li></ul><div class="section" id="idp12081376"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idp12081376">7.5. Compensating for unsafe file creation</h2></div></div></div><div class="para">
+			There are two ways to make a function or program which excepts a file name safe for use with temporary files. See <a class="xref" href="sect-Defensive_Coding-Tasks-Processes.html#sect-Defensive_Coding-Tasks-Processes-Creation">Section 8.1, “Safe process creation”</a>, for details on subprocess creation.
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					Create a temporary directory and place the file there. If possible, run the program in a subprocess which uses the temporary directory as its current directory, with a restricted environment. Use generated names for all files in that temporary directory. (See <a class="xref" href="chap-Defensive_Coding-Tasks-Temporary_Directory.html">Section 7.4, “Temporary directories”</a>.)
+				</div></li><li class="listitem"><div class="para">
+					Create the temporary file and pass the generated file name to the function or program. This only works if the function or program can cope with a zero-length existing file. It is safe only under additional assumptions:
+				</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+							The function or program must not create additional files whose name is derived from the specified file name or are otherwise predictable.
+						</div></li><li class="listitem"><div class="para">
+							The function or program must not delete the file before processing it.
+						</div></li><li class="listitem"><div class="para">
+							It must not access any existing files in the same directory.
+						</div></li></ul></div><div class="para">
+					It is often difficult to check whether these additional assumptions are matched, therefore this approach is not recommended.
+				</div></li></ul></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="chap-Defensive_Coding-Tasks-Temporary_Directory.html"><strong>Prev</strong>7.4. Temporary directories</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-Processes.html"><strong>Next</strong>Chapter 8. Processes</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch08s02.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch08s02.html
new file mode 100644
index 0000000..c97ef32
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch08s02.html
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>8.2. Handling child process termination</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="sect-Defensive_Coding-Tasks-Processes.html" title="Chapter 8. Processes" /><link rel="prev" href="sect-Defensive_Coding-Tasks-Processes.html" title="Chapter 8. Processes" /><link rel="next" href="ch08s03.html" title="8.3. SUID/SGID processes" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-Tasks-Processes.html"><strong>Prev</strong></a></li><li 
 class="next"><a accesskey="n" href="ch08s03.html"><strong>Next</strong></a></li></ul><div class="section" id="idm6992976"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idm6992976">8.2. Handling child process termination</h2></div></div></div><div class="para">
+			When child processes terminate, the parent process is signalled. A stub of the terminated processes (a <span class="emphasis"><em>zombie</em></span>, shown as <code class="literal">&lt;defunct&gt;</code> by <span class="application"><strong>ps</strong></span>) is kept around until the status information is collected (<span class="emphasis"><em>reaped</em></span>) by the parent process. Over the years, several interfaces for this have been invented:
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					The parent process calls <code class="function">wait</code>, <code class="function">waitpid</code>, <code class="function">waitid</code>, <code class="function">wait3</code> or <code class="function">wait4</code>, without specifying a process ID. This will deliver any matching process ID. This approach is typically used from within event loops.
+				</div></li><li class="listitem"><div class="para">
+					The parent process calls <code class="function">waitpid</code>, <code class="function">waitid</code>, or <code class="function">wait4</code>, with a specific process ID. Only data for the specific process ID is returned. This is typically used in code which spawns a single subprocess in a synchronous manner.
+				</div></li><li class="listitem"><div class="para">
+					The parent process installs a handler for the <code class="literal">SIGCHLD</code> signal, using <code class="function">sigaction</code>, and specifies to the <code class="literal">SA_NOCLDWAIT</code> flag. This approach could be used by event loops as well.
+				</div></li></ul></div><div class="para">
+			None of these approaches can be used to wait for child process terminated in a completely thread-safe manner. The parent process might execute an event loop in another thread, which could pick up the termination signal. This means that libraries typically cannot make free use of child processes (for example, to run problematic code with reduced privileges in a separate address space).
+		</div><div class="para">
+			At the moment, the parent process should explicitly wait for termination of the child process using <code class="function">waitpid</code> or <code class="function">waitpid</code>, and hope that the status is not collected by an event loop first.
+		</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-Tasks-Processes.html"><strong>Prev</strong>Chapter 8. Processes</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="ch08s03.html"><strong>Next</strong>8.3. SUID/SGID processes</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch08s03.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch08s03.html
new file mode 100644
index 0000000..b1eefb1
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch08s03.html
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>8.3. SUID/SGID processes</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="sect-Defensive_Coding-Tasks-Processes.html" title="Chapter 8. Processes" /><link rel="prev" href="ch08s02.html" title="8.2. Handling child process termination" /><link rel="next" href="sect-Defensive_Coding-Tasks-Processes-Daemons.html" title="8.4. Daemons" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="ch08s02.html"><strong>Prev</strong></a></li><li class="next"><a 
 accesskey="n" href="sect-Defensive_Coding-Tasks-Processes-Daemons.html"><strong>Next</strong></a></li></ul><div class="section" id="idp18779184"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idp18779184">8.3. <code class="literal">SUID</code>/<code class="literal">SGID</code> processes</h2></div></div></div><div class="para">
+			Programs can be marked in the file system to indicate to the kernel that a trust transition should happen if the program is run. The <code class="literal">SUID</code> file permission bit indicates that an executable should run with the effective user ID equal to the owner of the executable file. Similarly, with the <code class="literal">SGID</code> bit, the effective group ID is set to the group of the executable file.
+		</div><div class="para">
+			Linux supports <span class="emphasis"><em>fscaps</em></span>, which can grant additional capabilities to a process in a finer-grained manner. Additional mechanisms can be provided by loadable security modules.
+		</div><div class="para">
+			When such a trust transition has happened, the process runs in a potentially hostile environment. Additional care is necessary not to rely on any untrusted information. These concerns also apply to libraries which can be linked into such processes.
+		</div><div class="section" id="sect-Defensive_Coding-Tasks-secure_getenv"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">8.3.1. Accessing environment variables</h3></div></div></div><div class="para">
+				The following steps are required so that a program does not accidentally pick up untrusted data from environment variables.
+			</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+						Compile your C/C++ sources with <code class="literal">-D_GNU_SOURCE</code>. The Autoconf macro <code class="literal">AC_GNU_SOURCE</code> ensures this.
+					</div></li><li class="listitem"><div class="para">
+						Check for the presence of the <code class="function">secure_getenv</code> and <code class="function">__secure_getenv</code> function. The Autoconf directive <code class="literal">AC_CHECK_FUNCS([__secure_getenv secure_getenv])</code> performs these checks.
+					</div></li><li class="listitem"><div class="para">
+						Arrange for a proper definition of the <code class="function">secure_getenv</code> function. See <a class="xref" href="ch08s03.html#ex-Defensive_Coding-Tasks-secure_getenv">Example 8.1, “Obtaining a definition for <code class="function">secure_getenv</code>”</a>.
+					</div></li><li class="listitem"><div class="para">
+						Use <code class="function">secure_getenv</code> instead of <code class="function">getenv</code> to obtain the value of critical environment variables. <code class="function">secure_getenv</code> will pretend the variable has not bee set if the process environment is not trusted.
+					</div></li></ul></div><div class="para">
+				Critical environment variables are debugging flags, configuration file locations, plug-in and log file locations, and anything else that might be used to bypass security restrictions or cause a privileged process to behave in an unexpected way.
+			</div><div class="para">
+				Either the <code class="function">secure_getenv</code> function or the <code class="function">__secure_getenv</code> is available from GNU libc.
+			</div><div class="example" id="ex-Defensive_Coding-Tasks-secure_getenv"><h6>Example 8.1. Obtaining a definition for <code class="function">secure_getenv</code></h6><div class="example-contents"><pre class="programlisting">
+
+<span class="perl_Others">#include &lt;stdlib.h&gt;</span><span class="perl_Others"></span>
+<span class="perl_Others"></span>
+<span class="perl_Others">#ifndef HAVE_SECURE_GETENV</span><span class="perl_Others"></span>
+<span class="perl_Others"></span><span class="perl_Others">#  ifdef HAVE__SECURE_GETENV</span><span class="perl_Others"></span>
+<span class="perl_Others"></span><span class="perl_Others">#    define secure_getenv __secure_getenv</span><span class="perl_Others"></span>
+<span class="perl_Others"></span><span class="perl_Others">#  else</span><span class="perl_Others"></span>
+<span class="perl_Others"></span><span class="perl_Others">#    error neither secure_getenv nor __secure_getenv are available</span><span class="perl_Others"></span>
+<span class="perl_Others"></span><span class="perl_Others">#  endif</span><span class="perl_Others"></span>
+<span class="perl_Others"></span><span class="perl_Others">#endif</span><span class="perl_Others"></span>
+<span class="perl_Others"></span>
+</pre></div></div><br class="example-break" /></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="ch08s02.html"><strong>Prev</strong>8.2. Handling child process termination</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-Processes-Daemons.html"><strong>Next</strong>8.4. Daemons</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch08s05.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch08s05.html
new file mode 100644
index 0000000..71f849d
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch08s05.html
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>8.5. Semantics of command line arguments</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="sect-Defensive_Coding-Tasks-Processes.html" title="Chapter 8. Processes" /><link rel="prev" href="sect-Defensive_Coding-Tasks-Processes-Daemons.html" title="8.4. Daemons" /><link rel="next" href="sect-Defensive_Coding-Tasks-Processes-Fork-Parallel.html" title="8.6. fork as a primitive for parallelism" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Codi
 ng-Tasks-Processes-Daemons.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-Processes-Fork-Parallel.html"><strong>Next</strong></a></li></ul><div class="section" id="idp21978848"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idp21978848">8.5. Semantics of command line arguments</h2></div></div></div><div class="para">
+			After process creation and option processing, it is up to the child process to interpret the arguments. Arguments can be file names, host names, or URLs, and many other things. URLs can refer to the local network, some server on the Internet, or to the local file system. Some applications even accept arbitrary code in arguments (for example, <span class="application"><strong>python</strong></span> with the <code class="option">-c</code> option).
+		</div><div class="para">
+			Similar concerns apply to environment variables, the contents of the current directory and its subdirectories. 
+		</div><div class="para">
+			Consequently, careful analysis is required if it is safe to pass untrusted data to another program.
+		</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-Tasks-Processes-Daemons.html"><strong>Prev</strong>8.4. Daemons</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-Processes-Fork-Parallel.html"><strong>Next</strong>8.6. fork as a primitive for parallelism</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch09s02.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch09s02.html
new file mode 100644
index 0000000..ae827ab
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch09s02.html
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>9.2. Protocol design</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="chap-Defensive_Coding-Tasks-Serialization.html" title="Chapter 9. Serialization and Deserialization" /><link rel="prev" href="chap-Defensive_Coding-Tasks-Serialization.html" title="Chapter 9. Serialization and Deserialization" /><link rel="next" href="ch09s03.html" title="9.3. Library support for deserialization" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="chap-D
 efensive_Coding-Tasks-Serialization.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="ch09s03.html"><strong>Next</strong></a></li></ul><div class="section" id="idp12872720"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idp12872720">9.2. Protocol design</h2></div></div></div><div class="para">
+			Binary formats with explicit length fields are more difficult to parse robustly than those where the length of dynamically-sized elements is derived from sentinel values. A protocol which does not use length fields and can be written in printable ASCII characters simplifies testing and debugging. However, binary protocols with length fields may be more efficient to parse.
+		</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="chap-Defensive_Coding-Tasks-Serialization.html"><strong>Prev</strong>Chapter 9. Serialization and Deserialization</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="ch09s03.html"><strong>Next</strong>9.3. Library support for deserialization</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch09s03.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch09s03.html
new file mode 100644
index 0000000..7521c20
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch09s03.html
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>9.3. Library support for deserialization</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="chap-Defensive_Coding-Tasks-Serialization.html" title="Chapter 9. Serialization and Deserialization" /><link rel="prev" href="ch09s02.html" title="9.2. Protocol design" /><link rel="next" href="sect-Defensive_Coding-Tasks-Serialization-XML.html" title="9.4. XML serialization" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="ch09s02.html"><strong>Prev</strong></a></li><
 li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-Serialization-XML.html"><strong>Next</strong></a></li></ul><div class="section" id="idp20530352"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idp20530352">9.3. Library support for deserialization</h2></div></div></div><div class="para">
+			For some languages, generic libraries are available which allow to serialize and deserialize user-defined objects. The deserialization part comes in one of two flavors, depending on the library. The first kind uses type information in the data stream to control which objects are instantiated. The second kind uses type definitions supplied by the programmer. The first one allows arbitrary object instantiation, the second one generally does not.
+		</div><div class="para">
+			The following serialization frameworks are in the first category, are known to be unsafe, and must not be used for untrusted data:
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					Python's <span class="package">pickle</span> and <span class="package">cPickle</span> modules
+				</div></li><li class="listitem"><div class="para">
+					Perl's <span class="package">Storable</span> package
+				</div></li><li class="listitem"><div class="para">
+					Java serialization (<span class="type">java.io.ObjectInputStream</span>)
+				</div></li><li class="listitem"><div class="para">
+					PHP serialization (<code class="function">unserialize</code>)
+				</div></li><li class="listitem"><div class="para">
+					Most implementations of YAML
+				</div></li></ul></div><div class="para">
+			When using a type-directed deserialization format where the types of the deserialized objects are specified by the programmer, make sure that the objects which can be instantiated cannot perform any destructive actions in their destructors, even when the data members have been manipulated.
+		</div><div class="para">
+			JSON decoders do not suffer from this problem. But you must not use the <code class="function">eval</code> function to parse JSON objects in Javascript; even with the regular expression filter from RFC 4627, there are still information leaks remaining.
+		</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="ch09s02.html"><strong>Prev</strong>9.2. Protocol design</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-Serialization-XML.html"><strong>Next</strong>9.4. XML serialization</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch09s05.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch09s05.html
new file mode 100644
index 0000000..533ac14
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch09s05.html
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>9.5. Protocol Encoders</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="chap-Defensive_Coding-Tasks-Serialization.html" title="Chapter 9. Serialization and Deserialization" /><link rel="prev" href="sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse-SAX.html" title="9.4.6.2. XML Schema validation in OpenJDK" /><link rel="next" href="chap-Defensive_Coding-Tasks-Cryptography.html" title="Chapter 10. Cryptography" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="pre
 vious"><a accesskey="p" href="sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse-SAX.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="chap-Defensive_Coding-Tasks-Cryptography.html"><strong>Next</strong></a></li></ul><div class="section" id="idp30064912"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idp30064912">9.5. Protocol Encoders</h2></div></div></div><div class="para">
+			For protocol encoders, you should write bytes to a buffer which grows as needed, using an exponential sizing policy. Explicit lengths can be patched in later, once they are known. Allocating the required number of bytes upfront typically requires separate code to compute the final size, which must be kept in sync with the actual encoding step, or vulnerabilities may result. In multi-threaded code, parts of the object being deserialized might change, so that the computed size is out of date.
+		</div><div class="para">
+			You should avoid copying data directly from a received packet during encoding, disregarding the format. Propagating malformed data could enable attacks on other recipients of that data.
+		</div><div class="para">
+			When using C or C++ and copying whole data structures directly into the output, make sure that you do not leak information in padding bytes between fields or at the end of the <code class="literal">struct</code>.
+		</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse-SAX.html"><strong>Prev</strong>9.4.6.2. XML Schema validation in OpenJDK</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="chap-Defensive_Coding-Tasks-Cryptography.html"><strong>Next</strong>Chapter 10. Cryptography</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch10s02.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch10s02.html
new file mode 100644
index 0000000..b8e1e1b
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/ch10s02.html
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>10.2. Randomness</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="chap-Defensive_Coding-Tasks-Cryptography.html" title="Chapter 10. Cryptography" /><link rel="prev" href="chap-Defensive_Coding-Tasks-Cryptography.html" title="Chapter 10. Cryptography" /><link rel="next" href="pt03.html" title="Part III. Implementing Security Features" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="chap-Defensive_Coding-Tasks-Cryptography.html"><st
 rong>Prev</strong></a></li><li class="next"><a accesskey="n" href="pt03.html"><strong>Next</strong></a></li></ul><div class="section" id="idp21273600"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idp21273600">10.2. Randomness</h2></div></div></div><div class="para">
+			The following facilities can be used to generate unpredictable and non-repeating values. When these functions are used without special safeguards, each individual rnadom value should be at least 12 bytes long.
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					<code class="function">PK11_GenerateRandom</code> in the NSS library (usable for high data rates)
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">RAND_bytes</code> in the OpenSSL library (usable for high data rates)
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">gnutls_rnd</code> in GNUTLS, with <code class="literal">GNUTLS_RND_RANDOM</code> as the first argument (usable for high data rates)
+				</div></li><li class="listitem"><div class="para">
+					<span class="type">java.security.SecureRandom</span> in Java (usable for high data rates)
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">os.urandom</code> in Python
+				</div></li><li class="listitem"><div class="para">
+					Reading from the <code class="filename">/dev/urandom</code> character device
+				</div></li></ul></div><div class="para">
+			All these functions should be non-blocking, and they should not wait until physical randomness becomes available. (Some cryptography providers for Java can cause <span class="type">java.security.SecureRandom</span> to block, however.) Those functions which do not obtain all bits directly from <code class="filename">/dev/urandom</code> are suitable for high data rates because they do not deplete the system-wide entropy pool.
+		</div><div class="important"><div class="admonition_header"><h2>Difficult to use API</h2></div><div class="admonition"><div class="para">
+				Both <code class="function">RAND_bytes</code> and <code class="function">PK11_GenerateRandom</code> have three-state return values (with conflicting meanings). Careful error checking is required. Please review the documentation when using these functions.
+			</div></div></div><div class="para">
+			Other sources of randomness should be considered predictable.
+		</div><div class="para">
+			Generating randomness for cryptographic keys in long-term use may need different steps and is best left to cryptographic libraries.
+		</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="chap-Defensive_Coding-Tasks-Cryptography.html"><strong>Prev</strong>Chapter 10. Cryptography</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="pt03.html"><strong>Next</strong>Part III. Implementing Security Features</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/chap-Defensive_Coding-Authentication.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/chap-Defensive_Coding-Authentication.html
new file mode 100644
index 0000000..e7591ef
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/chap-Defensive_Coding-Authentication.html
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 11. Authentication and Authorization</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="pt03.html" title="Part III. Implementing Security Features" /><link rel="prev" href="pt03.html" title="Part III. Implementing Security Features" /><link rel="next" href="sect-Defensive_Coding-Authentication-Host_based.html" title="11.2. Host-based authentication" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="pt03.html"><strong>Prev</strong></a></li><li class="next"
 ><a accesskey="n" href="sect-Defensive_Coding-Authentication-Host_based.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="chapter" id="chap-Defensive_Coding-Authentication" lang="en-US"><div class="titlepage"><div><div><h2 class="title">Chapter 11. Authentication and Authorization</h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="chap-Defensive_Coding-Authentication.html#sect-Defensive_Coding-Authentication-Server">11.1. Authenticating servers</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Authentication-Host_based.html">11.2. Host-based authentication</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Authentication-UNIX_Domain.html">11.3. UNIX domain socket authentication</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Authentication-Netlink.html">11.4. <code class="literal">AF_NETLINK</code> authentication of origin</a></span></dt></dl></div><div class="
 section" id="sect-Defensive_Coding-Authentication-Server"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">11.1. Authenticating servers</h2></div></div></div><div class="para">
+			When connecting to a server, a client has to make sure that it is actually talking to the server it expects. There are two different aspects, securing the network path, and making sure that the expected user runs the process on the target host. There are several ways to ensure that:
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					The server uses a TLS certificate which is valid according to the web browser public key infrastructure, and the client verifies the certificate and the host name.
+				</div></li><li class="listitem"><div class="para">
+					The server uses a TLS certificate which is expectedby the client (perhaps it is stored in a configuration file read by the client). In this case, no host name checking is required.
+				</div></li><li class="listitem"><div class="para">
+					On Linux, UNIX domain sockets (of the <code class="literal">PF_UNIX</code> protocol family, sometimes called <code class="literal">PF_LOCAL</code>) are restricted by file system permissions. If the server socket path is not world-writable, the server identity cannot be spoofed by local users.
+				</div></li><li class="listitem"><div class="para">
+					Port numbers less than 1024 (<span class="emphasis"><em>trusted ports</em></span>) can only be used by <code class="literal">root</code>, so if a UDP or TCP server is running on the local host and it uses a trusted port, its identity is assured. (Not all operating systems enforce the trusted ports concept, and the network might not be trusted, so it is only useful on the local system.)
+				</div></li></ul></div><div class="para">
+			TLS (<a class="xref" href="chap-Defensive_Coding-TLS.html">Chapter 12, <em>Transport Layer Security</em></a>) is the recommended way for securing connections over untrusted networks.
+		</div><div class="para">
+			If the server port number is 1024 is higher, a local user can impersonate the process by binding to this socket, perhaps after crashing the real server by exploiting a denial-of-service vulnerability.
+		</div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="pt03.html"><strong>Prev</strong>Part III. Implementing Security Features</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Authentication-Host_based.html"><strong>Next</strong>11.2. Host-based authentication</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/chap-Defensive_Coding-C.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/chap-Defensive_Coding-C.html
new file mode 100644
index 0000000..af4b4a5
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/chap-Defensive_Coding-C.html
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 1. The C Programming Language</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="pt01.html" title="Part I. Programming Languages" /><link rel="prev" href="pt01.html" title="Part I. Programming Languages" /><link rel="next" href="sect-Defensive_Coding-C-Libc.html" title="1.2. The C standard library" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="pt01.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding
 -C-Libc.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="chapter" id="chap-Defensive_Coding-C" lang="en-US"><div class="titlepage"><div><div><h2 class="title">Chapter 1. The C Programming Language</h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="chap-Defensive_Coding-C.html#sect-Defensive_Coding-C-Language">1.1. The core language</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Defensive_Coding-C.html#sect-Defensive_Coding-C-Undefined">1.1.1. Undefined behavior</a></span></dt><dt><span class="section"><a href="chap-Defensive_Coding-C.html#sect-Defensive_Coding-C-Pointers">1.1.2. Recommendations for pointers and array handling</a></span></dt><dt><span class="section"><a href="chap-Defensive_Coding-C.html#sect-Defensive_Coding-C-Arithmetic">1.1.3. Recommendations for integer arithmetic</a></span></dt></dl></dd><dt><span class="section"><a href="sect-Defensive_Coding-C-Libc.html">1.2. The C standard library</a></
 span></dt><dd><dl><dt><span class="section"><a href="sect-Defensive_Coding-C-Libc.html#sect-Defensive_Coding-C-Absolutely-Banned">1.2.1. Absolutely banned interfaces</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-C-Avoid.html">1.2.2. Functions to avoid</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-C-String-Functions-Length.html">1.2.3. String Functions With Explicit Length Arguments</a></span></dt></dl></dd><dt><span class="section"><a href="sect-Defensive_Coding-C-Allocators.html">1.3. Memory allocators</a></span></dt><dd><dl><dt><span class="section"><a href="sect-Defensive_Coding-C-Allocators.html#idp17665200">1.3.1. <code class="function">malloc</code> and related functions</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-C-Allocators-alloca.html">1.3.2. <code class="function">alloca</code> and other forms of stack-based allocation</a></span></dt><dt><span class="section"><a href="sect-Defensive_Co
 ding-C-Allocators-Arrays.html">1.3.3. Array allocation</a></span></dt><dt><span class="section"><a href="ch01s03s04.html">1.3.4. Custom memory allocators</a></span></dt><dt><span class="section"><a href="ch01s03s05.html">1.3.5. Conservative garbage collection</a></span></dt></dl></dd></dl></div><div xml:lang="en-US" class="section" id="sect-Defensive_Coding-C-Language" lang="en-US"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">1.1. The core language</h2></div></div></div><div class="para">
+		C provides no memory safety. Most recommendations in this section deal with this aspect of the language.
+	</div><div class="section" id="sect-Defensive_Coding-C-Undefined"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">1.1.1. Undefined behavior</h3></div></div></div><div class="para">
+			Some C constructs are defined to be undefined by the C standard. This does not only mean that the standard does not describe what happens when the construct is executed. It also allows optimizing compilers such as GCC to assume that this particular construct is never reached. In some cases, this has caused GCC to optimize security checks away. (This is not a flaw in GCC or the C language. But C certainly has some areas which are more difficult to use than others.)
+		</div><div class="para">
+			Common sources of undefined behavior are:
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					out-of-bounds array accesses
+				</div></li><li class="listitem"><div class="para">
+					null pointer dereferences
+				</div></li><li class="listitem"><div class="para">
+					overflow in signed integer arithmetic
+				</div></li></ul></div></div><div class="section" id="sect-Defensive_Coding-C-Pointers"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">1.1.2. Recommendations for pointers and array handling</h3></div></div></div><div class="para">
+			Always keep track of the size of the array you are working with. Often, code is more obviously correct when you keep a pointer past the last element of the array, and calculate the number of remaining elements by substracting the current position from that pointer. The alternative, updating a separate variable every time when the position is advanced, is usually less obviously correct.
+		</div><div class="para">
+			<a class="xref" href="chap-Defensive_Coding-C.html#ex-Defensive_Coding-C-Pointers-remaining">Example 1.1, “Array processing in C”</a> shows how to extract Pascal-style strings from a character buffer. The two pointers kept for length checks are <code class="varname">inend</code> and <code class="varname">outend</code>. <code class="varname">inp</code> and <code class="varname">outp</code> are the respective positions. The number of input bytes is checked using the expression <code class="literal">len &gt; (size_t)(inend - inp)</code>. The cast silences a compiler warning; <code class="varname">inend</code> is always larger than <code class="varname">inp</code>.
+		</div><div class="example" id="ex-Defensive_Coding-C-Pointers-remaining"><h6>Example 1.1. Array processing in C</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+ssize_t
+extract_strings(<span class="perl_DataType">const</span> <span class="perl_DataType">char</span> *in, size_t inlen, <span class="perl_DataType">char</span> **out, size_t outlen)
+{
+  <span class="perl_DataType">const</span> <span class="perl_DataType">char</span> *inp = in;
+  <span class="perl_DataType">const</span> <span class="perl_DataType">char</span> *inend = in + inlen;
+  <span class="perl_DataType">char</span> **outp = out;
+  <span class="perl_DataType">char</span> **outend = out + outlen;
+
+  <span class="perl_Keyword">while</span> (inp != inend) {
+    size_t len;
+    <span class="perl_DataType">char</span> *s;
+    <span class="perl_Keyword">if</span> (outp == outend) {
+      errno = ENOSPC;
+      <span class="perl_Keyword">goto</span> err;
+    }
+    len = (<span class="perl_DataType">unsigned</span> <span class="perl_DataType">char</span>)*inp;
+    ++inp;
+    <span class="perl_Keyword">if</span> (len &gt; (size_t)(inend - inp)) {
+      errno = EINVAL;
+      <span class="perl_Keyword">goto</span> err;
+    }
+    s = malloc(len + <span class="perl_Float">1</span>);
+    <span class="perl_Keyword">if</span> (s == NULL) {
+      <span class="perl_Keyword">goto</span> err;
+    }
+    memcpy(s, inp, len);
+    inp += len;
+    s[len] = '\0';
+    *outp = s;
+    ++outp;
+  }
+  <span class="perl_Keyword">return</span> outp - out;
+err:
+  {
+    <span class="perl_DataType">int</span> errno_old = errno;
+    <span class="perl_Keyword">while</span> (out != outp) {
+      free(*out);
+      ++out;
+    }
+    errno = errno_old;
+  }
+  <span class="perl_Keyword">return</span> <span class="perl_DecVal">-1</span>;
+}
+</pre></div></div><br class="example-break" /><div class="para">
+			It is important that the length checks always have the form <code class="literal">len &gt; (size_t)(inend - inp)</code>, where <code class="varname">len</code> is a variable of type <span class="type">size_t</span> which denotes the <span class="emphasis"><em>total</em></span> number of bytes which are about to be read or written next. In general, it is not safe to fold multiple such checks into one, as in <code class="literal">len1 + len2 &gt; (size_t)(inend - inp)</code>, because the expression on the left can overflow or wrap around (see <a class="xref" href="chap-Defensive_Coding-C.html#sect-Defensive_Coding-C-Arithmetic">Section 1.1.3, “Recommendations for integer arithmetic”</a>), and it no longer reflects the number of bytes to be processed.
+		</div></div><div class="section" id="sect-Defensive_Coding-C-Arithmetic"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">1.1.3. Recommendations for integer arithmetic</h3></div></div></div><div class="para">
+			Overflow in signed integer arithmetic is undefined. This means that it is not possible to check for overflow after it happened, see <a class="xref" href="chap-Defensive_Coding-C.html#ex-Defensive_Coding-C-Arithmetic-bad">Example 1.2, “Incorrect overflow detection in C”</a>.
+		</div><div class="example" id="ex-Defensive_Coding-C-Arithmetic-bad"><h6>Example 1.2. Incorrect overflow detection in C</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_DataType">void</span> report_overflow(<span class="perl_DataType">void</span>);
+
+<span class="perl_DataType">int</span>
+add(<span class="perl_DataType">int</span> a, <span class="perl_DataType">int</span> b)
+{
+  <span class="perl_DataType">int</span> result = a + b;
+  <span class="perl_Keyword">if</span> (a &lt; 0 || b &lt; 0) {
+    <span class="perl_Keyword">return</span> <span class="perl_DecVal">-1</span>;
+  }
+  <span class="perl_Comment">// The compiler can optimize away the following if statement.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>  <span class="perl_Keyword">if</span> (result &lt; 0) {
+    report_overflow();
+  }
+  <span class="perl_Keyword">return</span> result;
+}
+</pre></div></div><br class="example-break" /><div class="para">
+			The following approaches can be used to check for overflow, without actually causing it.
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					Use a wider type to perform the calculation, check that the result is within bounds, and convert the result to the original type. All intermediate results must be checked in this way.
+				</div></li><li class="listitem"><div class="para">
+					Perform the calculation in the corresponding unsigned type and use bit fiddling to detect the overflow.
+				</div></li><li class="listitem"><div class="para">
+					Compute bounds for acceptable input values which are known to avoid overflow, and reject other values. This is the preferred way for overflow checking on multiplications, see <a class="xref" href="chap-Defensive_Coding-C.html#ex-Defensive_Coding-C-Arithmetic-mult">Example 1.3, “Overflow checking for unsigned multiplication”</a>. 
+				</div></li></ul></div><div class="example" id="ex-Defensive_Coding-C-Arithmetic-mult"><h6>Example 1.3. Overflow checking for unsigned multiplication</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_DataType">unsigned</span>
+mul(<span class="perl_DataType">unsigned</span> a, <span class="perl_DataType">unsigned</span> b)
+{
+  <span class="perl_Keyword">if</span> (b &amp;&amp; a &gt; ((<span class="perl_DataType">unsigned</span>)<span class="perl_DecVal">-1</span>) / b) {
+    report_overflow();
+  }
+  <span class="perl_Keyword">return</span> a * b;
+}
+</pre></div></div><br class="example-break" /><div class="para">
+			Basic arithmetic operations a commutative, so for bounds checks, there are two different but mathematically equivalent expressions. Sometimes, one of the expressions results in better code because parts of it can be reduced to a constant. This applies to overflow checks for multiplication <code class="literal">a * b</code> involving a constant <code class="literal">a</code>, where the expression is reduced to <code class="literal">b &gt; C</code> for some constant <code class="literal">C</code> determined at compile time. The other expression, <code class="literal">b &amp;&amp; a &gt; ((unsigned)-1) / b</code>, is more difficult to optimize at compile time.
+		</div><div class="para">
+			When a value is converted to a signed integer, GCC always chooses the result based on 2's complement arithmetic. This GCC extension (which is also implemented by other compilers) helps a lot when implementing overflow checks.
+		</div><div class="para">
+			Legacy code should be compiled with the <code class="option">-fwrapv</code> GCC option. As a result, GCC will provide 2's complement semantics for integer arithmetic, including defined behavior on integer overflow.
+		</div></div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="pt01.html"><strong>Prev</strong>Part I. Programming Languages</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-C-Libc.html"><strong>Next</strong>1.2. The C standard library</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/chap-Defensive_Coding-CXX.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/chap-Defensive_Coding-CXX.html
new file mode 100644
index 0000000..ebf6e7c
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/chap-Defensive_Coding-CXX.html
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 2. The C++ Programming Language</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="pt01.html" title="Part I. Programming Languages" /><link rel="prev" href="ch01s03s05.html" title="1.3.5. Conservative garbage collection" /><link rel="next" href="sect-Defensive_Coding-CXX-Std.html" title="2.2. The C++ standard library" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="ch01s03s05.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href
 ="sect-Defensive_Coding-CXX-Std.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="chapter" id="chap-Defensive_Coding-CXX" lang="en-US"><div class="titlepage"><div><div><h2 class="title">Chapter 2. The C++ Programming Language</h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="chap-Defensive_Coding-CXX.html#sect-Defensive_Coding-CXX-Language">2.1. The core language</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Defensive_Coding-CXX.html#idp16154880">2.1.1. Array allocation with <code class="literal">operator new[]</code></a></span></dt><dt><span class="section"><a href="chap-Defensive_Coding-CXX.html#idp25753872">2.1.2. Overloading</a></span></dt><dt><span class="section"><a href="chap-Defensive_Coding-CXX.html#idp17591600">2.1.3. ABI compatibility and preparing for security updates</a></span></dt><dt><span class="section"><a href="chap-Defensive_Coding-CXX.html#sect-Defensive_Coding-CXX-Language-CXX11">2.1.4. C
 ++0X and C++11 support</a></span></dt></dl></dd><dt><span class="section"><a href="sect-Defensive_Coding-CXX-Std.html">2.2. The C++ standard library</a></span></dt><dd><dl><dt><span class="section"><a href="sect-Defensive_Coding-CXX-Std.html#idp16149312">2.2.1. Containers and <code class="literal">operator[]</code></a></span></dt></dl></dd></dl></div><div xml:lang="en-US" class="section" id="sect-Defensive_Coding-CXX-Language" lang="en-US"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">2.1. The core language</h2></div></div></div><div class="para">
+		C++ includes a large subset of the C language. As far as the C subset is used, the recommendations in <a class="xref" href="chap-Defensive_Coding-C.html">Chapter 1, <em>The C Programming Language</em></a> apply.
+	</div><div class="section" id="idp16154880"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idp16154880">2.1.1. Array allocation with <code class="literal">operator new[]</code></h3></div></div></div><div class="para">
+			For very large values of <code class="literal">n</code>, an expression like <code class="literal">new T[n]</code> can return a pointer to a heap region which is too small. In other words, not all array elements are actually backed with heap memory reserved to the array. Current GCC versions generate code that performs a computation of the form <code class="literal">sizeof(T) * size_t(n) + cookie_size</code>, where <code class="literal">cookie_size</code> is currently at most 8. This computation can overflow, and GCC-generated code does not detect this.
+		</div><div class="para">
+			The <code class="literal">std::vector</code> template can be used instead an explicit array allocation. (The GCC implementation detects overflow internally.)
+		</div><div class="para">
+			If there is no alternative to <code class="literal">operator new[]</code>, code which allocates arrays with a variable length must check for overflow manually. For the <code class="literal">new T[n]</code> example, the size check could be <code class="literal">n || (n &gt; 0 &amp;&amp; n &gt; (size_t(-1) - 8) / sizeof(T))</code>. (See <a class="xref" href="chap-Defensive_Coding-C.html#sect-Defensive_Coding-C-Arithmetic">Section 1.1.3, “Recommendations for integer arithmetic”</a>.) If there are additional dimensions (which must be constants according to the C++ standard), these should be included as factors in the divisor.
+		</div><div class="para">
+			These countermeasures prevent out-of-bounds writes and potential code execution. Very large memory allocations can still lead to a denial of service. <a class="xref" href="chap-Defensive_Coding-Tasks-Serialization.html#sect-Defensive_Coding-Tasks-Serialization-Decoders">Section 9.1, “Recommendations for manually written decoders”</a> contains suggestions for mitigating this problem when processing untrusted data.
+		</div><div class="para">
+			See <a class="xref" href="sect-Defensive_Coding-C-Allocators-Arrays.html">Section 1.3.3, “Array allocation”</a> for array allocation advice for C-style memory allocation.
+		</div></div><div class="section" id="idp25753872"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idp25753872">2.1.2. Overloading</h3></div></div></div><div class="para">
+			Do not overload functions with versions that have different security characteristics. For instance, do not implement a function <code class="function">strcat</code> which works on <span class="type">std::string</span> arguments. Similarly, do not name methods after such functions.
+		</div></div><div class="section" id="idp17591600"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idp17591600">2.1.3. ABI compatibility and preparing for security updates</h3></div></div></div><div class="para">
+			A stable binary interface (ABI) is vastly preferred for security updates. Without a stable ABI, all reverse dependencies need recompiling, which can be a lot of work and could even be impossible in some cases. Ideally, a security update only updates a single dynamic shared object, and is picked up automatically after restarting affected processes.
+		</div><div class="para">
+			Outside of extremely performance-critical code, you should ensure that a wide range of changes is possible without breaking ABI. Some very basic guidelines are:
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					Avoid inline functions.
+				</div></li><li class="listitem"><div class="para">
+					Use the pointer-to-implementation idiom.
+				</div></li><li class="listitem"><div class="para">
+					Try to avoid templates. Use them if the increased type safety provides a benefit to the programmer.
+				</div></li><li class="listitem"><div class="para">
+					Move security-critical code out of templated code, so that it can be patched in a central place if necessary.
+				</div></li></ul></div><div class="para">
+			The KDE project publishes a document with more extensive guidelines on ABI-preserving changes to C++ code, <a href="http://techbase.kde.org/Policies/Binary_Compatibility_Issues_With_C++">Policies/Binary Compatibility Issues With C++</a> (<span class="emphasis"><em>d-pointer</em></span> refers to the pointer-to-implementation idiom).
+		</div></div><div class="section" id="sect-Defensive_Coding-CXX-Language-CXX11"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">2.1.4. C++0X and C++11 support</h3></div></div></div><div class="para">
+			GCC offers different language compatibility modes:
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					<code class="option">-std=c++98</code> for the original 1998 C++ standard
+				</div></li><li class="listitem"><div class="para">
+					<code class="option">-std=c++03</code> for the 1998 standard with the changes from the TR1 technical report
+				</div></li><li class="listitem"><div class="para">
+					<code class="option">-std=c++11</code> for the 2011 C++ standard. This option should not be used.
+				</div></li><li class="listitem"><div class="para">
+					<code class="option">-std=c++0x</code> for several different versions of C++11 support in development, depending on the GCC version. This option should not be used. 
+				</div></li></ul></div><div class="para">
+			For each of these flags, there are variants which also enable GNU extensions (mostly language features also found in C99 or C11): <code class="option">-std=gnu++98</code>, <code class="option">-std=gnu++03</code>, <code class="option">-std=gnu++11</code>. Again, <code class="option">-std=gnu++11</code> should not be used.
+		</div><div class="para">
+			If you enable C++11 support, the ABI of the standard C++ library <code class="literal">libstdc++</code> will change in subtle ways. Currently, no C++ libraries are compiled in C++11 mode, so if you compile your code in C++11 mode, it will be incompatible with the rest of the system. Unfortunately, this is also the case if you do not use any C++11 features. Currently, there is no safe way to enable C++11 mode (except for freestanding applications).
+		</div><div class="para">
+			The meaning of C++0X mode changed from GCC release to GCC release. Earlier versions were still ABI-compatible with C++98 mode, but in the most recent versions, switching to C++0X mode activates C++11 support, with its compatibility problems.
+		</div><div class="para">
+			Some C++11 features (or approximations thereof) are available with TR1 support, that is, with <code class="option">-std=c++03</code> or <code class="option">-std=gnu++03</code> and in the <code class="literal">&lt;tr1/*&gt;</code> header files. This includes <code class="literal">std::tr1::shared_ptr</code> (from <code class="literal">&lt;tr1/memory&gt;</code>) and <code class="literal">std::tr1::function</code> (from <code class="literal">&lt;tr1/functional&gt;</code>). For other C++11 features, the Boost C++ library contains replacements.
+		</div></div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="ch01s03s05.html"><strong>Prev</strong>1.3.5. Conservative garbage collection</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-CXX-Std.html"><strong>Next</strong>2.2. The C++ standard library</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/chap-Defensive_Coding-Python.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/chap-Defensive_Coding-Python.html
new file mode 100644
index 0000000..b5fd123
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/chap-Defensive_Coding-Python.html
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 3. The Python Programming Language</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="pt01.html" title="Part I. Programming Languages" /><link rel="prev" href="sect-Defensive_Coding-CXX-Std.html" title="2.2. The C++ standard library" /><link rel="next" href="ch03s02.html" title="3.2. Run-time compilation and code generation" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-CXX-Std.html"><strong>Prev</strong></a></li><li class="next
 "><a accesskey="n" href="ch03s02.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="chapter" id="chap-Defensive_Coding-Python" lang="en-US"><div class="titlepage"><div><div><h2 class="title">Chapter 3. The Python Programming Language</h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="chap-Defensive_Coding-Python.html#idp22529920">3.1. Dangerous standard library features</a></span></dt><dt><span class="section"><a href="ch03s02.html">3.2. Run-time compilation and code generation</a></span></dt><dt><span class="section"><a href="ch03s03.html">3.3. Sandboxing</a></span></dt></dl></div><div class="para">
+		Python provides memory safety by default, so low-level security vulnerabilities are rare and typically needs fixing the Python interpreter or standard library itself.
+	</div><div class="para">
+		Other sections with Python-specific advice include:
+	</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+				<a class="xref" href="chap-Defensive_Coding-Tasks-Temporary_Files.html">Chapter 7, <em>Temporary files</em></a>
+			</div></li><li class="listitem"><div class="para">
+				<a class="xref" href="sect-Defensive_Coding-Tasks-Processes.html#sect-Defensive_Coding-Tasks-Processes-Creation">Section 8.1, “Safe process creation”</a>
+			</div></li><li class="listitem"><div class="para">
+				<a class="xref" href="chap-Defensive_Coding-Tasks-Serialization.html">Chapter 9, <em>Serialization and Deserialization</em></a>, in particular <a class="xref" href="ch09s03.html#sect-Defensive_Coding-Tasks-Serialization-Library">Section 9.3, “Library support for deserialization”</a>
+			</div></li><li class="listitem"><div class="para">
+				<a class="xref" href="ch10s02.html#sect-Defensive_Coding-Tasks-Cryptography-Randomness">Section 10.2, “Randomness”</a>
+			</div></li></ul></div><div class="section" id="idp22529920"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idp22529920">3.1. Dangerous standard library features</h2></div></div></div><div class="para">
+			Some areas of the standard library, notably the <code class="literal">ctypes</code> module, do not provide memory safety guarantees comparable to the rest of Python. If such functionality is used, the advice in <a class="xref" href="chap-Defensive_Coding-C.html#sect-Defensive_Coding-C-Language">Section 1.1, “The core language”</a> should be followed.
+		</div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-CXX-Std.html"><strong>Prev</strong>2.2. The C++ standard library</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="ch03s02.html"><strong>Next</strong>3.2. Run-time compilation and code generation</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/chap-Defensive_Coding-TLS.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/chap-Defensive_Coding-TLS.html
new file mode 100644
index 0000000..9c9cc22
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/chap-Defensive_Coding-TLS.html
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 12. Transport Layer Security</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="pt03.html" title="Part III. Implementing Security Features" /><link rel="prev" href="sect-Defensive_Coding-Authentication-Netlink.html" title="11.4. AF_NETLINK authentication of origin" /><link rel="next" href="sect-Defensive_Coding-TLS-Client.html" title="12.2. TLS Clients" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-Authentication-Netlink.h
 tml"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-TLS-Client.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="chapter" id="chap-Defensive_Coding-TLS" lang="en-US"><div class="titlepage"><div><div><h2 class="title">Chapter 12. Transport Layer Security</h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="chap-Defensive_Coding-TLS.html#sect-Defensive_Coding-TLS-Pitfalls">12.1. Common Pitfalls</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Defensive_Coding-TLS.html#sect-Defensive_Coding-TLS-OpenSSL">12.1.1. OpenSSL Pitfalls</a></span></dt><dt><span class="section"><a href="chap-Defensive_Coding-TLS.html#sect-Defensive_Coding-TLS-Pitfalls-GNUTLS">12.1.2. GNUTLS Pitfalls</a></span></dt><dt><span class="section"><a href="chap-Defensive_Coding-TLS.html#sect-Defensive_Coding-TLS-Pitfalls-OpenJDK">12.1.3. OpenJDK Pitfalls</a></span></dt><dt><span class="section"><a href="chap
 -Defensive_Coding-TLS.html#sect-Defensive_Coding-TLS-Pitfalls-NSS">12.1.4. NSS Pitfalls</a></span></dt></dl></dd><dt><span class="section"><a href="sect-Defensive_Coding-TLS-Client.html">12.2. TLS Clients</a></span></dt><dd><dl><dt><span class="section"><a href="sect-Defensive_Coding-TLS-Client.html#idp16548832">12.2.1. Implementation TLS Clients With OpenSSL</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-TLS-Client-GNUTLS.html">12.2.2. Implementation TLS Clients With GNUTLS</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-TLS-Client-OpenJDK.html">12.2.3. Implementing TLS Clients With OpenJDK</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-TLS-Client-NSS.html">12.2.4. Implementing TLS Clients With NSS</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-TLS-Client-Python.html">12.2.5. Implementing TLS Clients With Python</a></span></dt></dl></dd></dl></div><div class="para">
+		Transport Layer Security (TLS, formerly Secure Sockets Layer/SSL) is the recommended way to to protect integrity and confidentiality while data is transferred over an untrusted network connection, and to identify the endpoint.
+	</div><div class="section" id="sect-Defensive_Coding-TLS-Pitfalls"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">12.1. Common Pitfalls</h2></div></div></div><div class="para">
+			TLS implementations are difficult to use, and most of them lack a clean API design. The following sections contain implementation-specific advice, and some generic pitfalls are mentioned below.
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					Most TLS implementations have questionable default TLS cipher suites. Most of them enable anonymous Diffie-Hellman key exchange (but we generally want servers to authenticate themselves). Many do not disable ciphers which are subject to brute-force attacks because of restricted key lengths. Some even disable all variants of AES in the default configuration.
+				</div><div class="para">
+					When overriding the cipher suite defaults, it is recommended to disable all cipher suites which are not present on a whitelist, instead of simply enabling a list of cipher suites. This way, if an algorithm is disabled by default in the TLS implementation in a future security update, the application will not re-enable it.
+				</div></li><li class="listitem"><div class="para">
+					The name which is used in certificate validation must match the name provided by the user or configuration file. No host name canonicalization or IP address lookup must be performed.
+				</div></li><li class="listitem"><div class="para">
+					The TLS handshake has very poor performance if the TCP Nagle algorithm is active. You should switch on the <code class="literal">TCP_NODELAY</code> socket option (at least for the duration of the handshake), or use the Linux-specific <code class="literal">TCP_CORK</code> option.
+				</div><div class="example" id="ex-Defensive_Coding-TLS-Nagle"><h6>Example 12.1. Deactivating the TCP Nagle algorithm</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_DataType">const</span> <span class="perl_DataType">int</span> val = <span class="perl_Float">1</span>;
+<span class="perl_DataType">int</span> ret = setsockopt(sockfd, IPPROTO_TCP, TCP_NODELAY, &amp;val, <span class="perl_Keyword">sizeof</span>(val));
+<span class="perl_Keyword">if</span> (ret &lt; 0) {
+  perror(<span class="perl_String">"setsockopt(TCP_NODELAY)"</span>);
+  exit(<span class="perl_Float">1</span>);
+}
+</pre></div></div><br class="example-break" /></li><li class="listitem"><div class="para">
+					Implementing proper session resumption decreases handshake overhead considerably. This is important if the upper-layer protocol uses short-lived connections (like most application of HTTPS).
+				</div></li><li class="listitem"><div class="para">
+					Both client and server should work towards an orderly connection shutdown, that is send <code class="literal">close_notify</code> alerts and respond to them. This is especially important if the upper-layer protocol does not provide means to detect connection truncation (like some uses of HTTP).
+				</div></li><li class="listitem"><div class="para">
+					When implementing a server using event-driven programming, it is important to handle the TLS handshake properly because it includes multiple network round-trips which can block when an ordinary TCP <code class="function">accept</code> would not. Otherwise, a client which fails to complete the TLS handshake for some reason will prevent the server from handling input from other clients.
+				</div></li><li class="listitem"><div class="para">
+					Unlike regular file descriptors, TLS connections cannot be passed between processes. Some TLS implementations add additional restrictions, and TLS connections generally cannot be used across <code class="function">fork</code> function calls (see <a class="xref" href="sect-Defensive_Coding-Tasks-Processes-Fork-Parallel.html">Section 8.6, “<code class="function">fork</code> as a primitive for parallelism”</a>).
+				</div></li></ul></div><div class="section" id="sect-Defensive_Coding-TLS-OpenSSL"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">12.1.1. OpenSSL Pitfalls</h3></div></div></div><div class="para">
+				Some OpenSSL function use <span class="emphasis"><em>tri-state return values</em></span>. Correct error checking is extremely important. Several functions return <code class="literal">int</code> values with the following meaning:
+			</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+						The value <code class="literal">1</code> indicates success (for example, a successful signature verification).
+					</div></li><li class="listitem"><div class="para">
+						The value <code class="literal">0</code> indicates semantic failure (for example, a signature verification which was unsuccessful because the signing certificate was self-signed).
+					</div></li><li class="listitem"><div class="para">
+						The value <code class="literal">-1</code> indicates a low-level error in the system, such as failure to allocate memory using <code class="function">malloc</code>.
+					</div></li></ul></div><div class="para">
+				Treating such tri-state return values as booleans can lead to security vulnerabilities. Note that some OpenSSL functions return boolean results or yet another set of status indicators. Each function needs to be checked individually.
+			</div><div class="para">
+				Recovering precise error information is difficult. <a class="xref" href="chap-Defensive_Coding-TLS.html#ex-Defensive_Coding-TLS-OpenSSL-Errors">Example 12.2, “Obtaining OpenSSL error codes”</a> shows how to obtain a more precise error code after a function call on an <code class="literal">SSL</code> object has failed. However, there are still cases where no detailed error information is available (e.g., if <code class="function">SSL_shutdown</code> fails due to a connection teardown by the other end).
+			</div><div class="example" id="ex-Defensive_Coding-TLS-OpenSSL-Errors"><h6>Example 12.2. Obtaining OpenSSL error codes</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_DataType">static</span> <span class="perl_DataType">void</span> __attribute__((noreturn))
+ssl_print_error_and_exit(SSL *ssl, <span class="perl_DataType">const</span> <span class="perl_DataType">char</span> *op, <span class="perl_DataType">int</span> ret)
+{
+  <span class="perl_DataType">int</span> subcode = SSL_get_error(ssl, ret);
+  <span class="perl_Keyword">switch</span> (subcode) {
+  <span class="perl_Keyword">case</span> SSL_ERROR_NONE:
+    fprintf(stderr, <span class="perl_String">"error: %s: no error to report</span><span class="perl_Char">\n</span><span class="perl_String">"</span>, op);
+    <span class="perl_Keyword">break</span>;
+  <span class="perl_Keyword">case</span> SSL_ERROR_WANT_READ:
+  <span class="perl_Keyword">case</span> SSL_ERROR_WANT_WRITE:
+  <span class="perl_Keyword">case</span> SSL_ERROR_WANT_X509_LOOKUP:
+  <span class="perl_Keyword">case</span> SSL_ERROR_WANT_CONNECT:
+  <span class="perl_Keyword">case</span> SSL_ERROR_WANT_ACCEPT:
+    fprintf(stderr, <span class="perl_String">"error: %s: invalid blocking state %d</span><span class="perl_Char">\n</span><span class="perl_String">"</span>, op, subcode);
+    <span class="perl_Keyword">break</span>;
+  <span class="perl_Keyword">case</span> SSL_ERROR_SSL:
+    fprintf(stderr, <span class="perl_String">"error: %s: TLS layer problem</span><span class="perl_Char">\n</span><span class="perl_String">"</span>, op);
+  <span class="perl_Keyword">case</span> SSL_ERROR_SYSCALL:
+    fprintf(stderr, <span class="perl_String">"error: %s: system call failed: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>, op, strerror(errno));
+    <span class="perl_Keyword">break</span>;
+  <span class="perl_Keyword">case</span> SSL_ERROR_ZERO_RETURN:
+    fprintf(stderr, <span class="perl_String">"error: %s: zero return</span><span class="perl_Char">\n</span><span class="perl_String">"</span>, op);
+  }
+  exit(<span class="perl_Float">1</span>);
+}
+</pre></div></div><br class="example-break" /><div class="para">
+				The <code class="function">OPENSSL_config</code> function is documented to never fail. In reality, it can terminate the entire process if there is a failure accessing the configuration file. An error message is written to standard error, but which might not be visible if the function is called from a daemon process.
+			</div><div class="para">
+				OpenSSL contains two separate ASN.1 DER decoders. One set of decoders operate on BIO handles (the input/output stream abstraction provided by OpenSSL); their decoder function names start with <code class="literal">d2i_</code> and end in <code class="literal">_fp</code> or <code class="literal">_bio</code> (e.g., <code class="function">d2i_X509_fp</code> or <code class="function">d2i_X509_bio</code>). These decoders must not be used for parsing data from untrusted sources; instead, the variants without the <code class="literal">_fp</code> and <code class="literal">_bio</code> (e.g., <code class="function">d2i_X509</code>) shall be used. The BIO variants have received considerably less testing and are not very robust.
+			</div><div class="para">
+				For the same reason, the OpenSSL command line tools (such as <code class="command">openssl x509</code>) are generally generally less robust than the actual library code. They use the BIO functions internally, and not the more robust variants.
+			</div><div class="para">
+				The command line tools do not always indicate failure in the exit status of the <span class="application"><strong>openssl</strong></span> process. For instance, a verification failure in <code class="command">openssl verify</code> result in an exit status of zero.
+			</div><div class="para">
+				The OpenSSL server and client applications (<code class="command">openssl s_client</code> and <code class="command">openssl s_server</code>) are debugging tools and should <span class="emphasis"><em>never</em></span> be used as generic clients. For instance, the <span class="application"><strong>s_client</strong></span> tool reacts in a surprisign way to lines starting with <code class="literal">R</code> and <code class="literal">Q</code>.
+			</div><div class="para">
+				OpenSSL allows application code to access private key material over documented interfaces. This can significantly increase the part of the code base which has to undergo security certification.
+			</div></div><div class="section" id="sect-Defensive_Coding-TLS-Pitfalls-GNUTLS"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">12.1.2. GNUTLS Pitfalls</h3></div></div></div><div class="para">
+				<code class="filename">libgnutls.so.26</code> links to <code class="filename">libpthread.so.0</code>. Loading the threading library too late causes problems, so the main program should be linked with <code class="literal">-lpthread</code> as well. As a result, it can be difficult to use GNUTLS in a plugin which is loaded with the <code class="function">dlopen</code> function. Another side effect is that applications which merely link against GNUTLS (even without actually using it) may incur a substantial overhead because other libraries automatically switch to thread-safe algorithms.
+			</div><div class="para">
+				The <code class="function">gnutls_global_init</code> function must be called before using any functionality provided by the library. This function is not thread-safe, so external locking is required, but it is not clear which lock should be used. Omitting the synchronization does not just lead to a memory leak, as it is suggested in the GNUTLS documentation, but to undefined behavior because there is no barrier that would enforce memory ordering.
+			</div><div class="para">
+				The <code class="function">gnutls_global_deinit</code> function does not actually deallocate all resources allocated by <code class="function">gnutls_global_init</code>. It is currently not thread-safe. Therefore, it is best to avoid calling it altogether.
+			</div><div class="para">
+				The X.509 implementation in GNUTLS is rather lenient. For example, it is possible to create and process X.509 version 1 certificates which carry extensions. These certificates are (correctly) rejected by other implementations.
+			</div></div><div class="section" id="sect-Defensive_Coding-TLS-Pitfalls-OpenJDK"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">12.1.3. OpenJDK Pitfalls</h3></div></div></div><div class="para">
+				The Java cryptographic framework is highly modular. As a result, when you request an object implementing some cryptographic functionality, you cannot be completely sure that you end up with the well-tested, reviewed implementation in OpenJDK.
+			</div><div class="para">
+				OpenJDK (in the source code as published by Oracle) and other implementations of the Java platform require that the system administrator has installed so-called <span class="emphasis"><em>unlimited strength jurisdiction policy files</em></span>. Without this step, it is not possible to use the secure algorithms which offer sufficient cryptographic strength. Most downstream redistributors of OpenJDK remove this requirement.
+			</div><div class="para">
+				Some versions of OpenJDK use <code class="filename">/dev/random</code> as the randomness source for nonces and other random data which is needed for TLS operation, but does not actually require physical randomness. As a result, TLS applications can block, waiting for more bits to become available in <code class="filename">/dev/random</code>.
+			</div></div><div class="section" id="sect-Defensive_Coding-TLS-Pitfalls-NSS"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">12.1.4. NSS Pitfalls</h3></div></div></div><div class="para">
+				NSS was not designed to be used by other libraries which can be linked into applications without modifying them. There is a lot of global state. There does not seem to be a way to perform required NSS initialization without race conditions.
+			</div><div class="para">
+				If the NSPR descriptor is in an unexpected state, the <code class="function">SSL_ForceHandshake</code> function can succeed, but no TLS handshake takes place, the peer is not authenticated, and subsequent data is exchanged in the clear.
+			</div><div class="para">
+				NSS disables itself if it detects that the process underwent a <code class="function">fork</code> after the library has been initialized. This behavior is required by the PKCS#11 API specification.
+			</div></div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-Authentication-Netlink.html"><strong>Prev</strong>11.4. AF_NETLINK authentication of origin</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-TLS-Client.html"><strong>Next</strong>12.2. TLS Clients</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/chap-Defensive_Coding-Tasks-Cryptography.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/chap-Defensive_Coding-Tasks-Cryptography.html
new file mode 100644
index 0000000..36e7fda
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/chap-Defensive_Coding-Tasks-Cryptography.html
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 10. Cryptography</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="pt02.html" title="Part II. Specific Programming Tasks" /><link rel="prev" href="ch09s05.html" title="9.5. Protocol Encoders" /><link rel="next" href="ch10s02.html" title="10.2. Randomness" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="ch09s05.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="ch10s02.html"><strong>Next</strong></a></li></ul>
 <div xml:lang="en-US" class="chapter" id="chap-Defensive_Coding-Tasks-Cryptography" lang="en-US"><div class="titlepage"><div><div><h2 class="title">Chapter 10. Cryptography</h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="chap-Defensive_Coding-Tasks-Cryptography.html#idp28411408">10.1. Primitives</a></span></dt><dt><span class="section"><a href="ch10s02.html">10.2. Randomness</a></span></dt></dl></div><div class="section" id="idp28411408"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idp28411408">10.1. Primitives</h2></div></div></div><div class="para">
+			Chosing from the following cryptographic primitives is recommended:
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					RSA with 2048 bit keys and OAEP
+				</div></li><li class="listitem"><div class="para">
+					AES-128 in CBC mode
+				</div></li><li class="listitem"><div class="para">
+					SHA-256
+				</div></li><li class="listitem"><div class="para">
+					HMAC-SHA-256
+				</div></li><li class="listitem"><div class="para">
+					HMAC-SHA-1
+				</div></li></ul></div><div class="para">
+			Other cryptographic algorithms can be used if they are required for interoperability with existing software:
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					RSA with key sizes larger than 1024 and legacy padding
+				</div></li><li class="listitem"><div class="para">
+					AES-192
+				</div></li><li class="listitem"><div class="para">
+					AES-256
+				</div></li><li class="listitem"><div class="para">
+					3DES (triple DES, with two or three 56 bit keys)
+				</div></li><li class="listitem"><div class="para">
+					RC4 (but very, very strongly discouraged)
+				</div></li><li class="listitem"><div class="para">
+					SHA-1
+				</div></li><li class="listitem"><div class="para">
+					HMAC-MD5
+				</div></li></ul></div><div class="important"><div class="admonition_header"><h2>Important</h2></div><div class="admonition"><div class="para">
+				These primitives are difficult to use in a secure way. Custom implementation of security protocols should be avoided. For protecting confidentiality and integrity of network transmissions, TLS should be used (<a class="xref" href="chap-Defensive_Coding-TLS.html">Chapter 12, <em>Transport Layer Security</em></a>).
+			</div></div></div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="ch09s05.html"><strong>Prev</strong>9.5. Protocol Encoders</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="ch10s02.html"><strong>Next</strong>10.2. Randomness</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/chap-Defensive_Coding-Tasks-File_System.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/chap-Defensive_Coding-Tasks-File_System.html
new file mode 100644
index 0000000..f56a5db
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/chap-Defensive_Coding-Tasks-File_System.html
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 6. File system manipulation</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="pt02.html" title="Part II. Specific Programming Tasks" /><link rel="prev" href="sect-Defensive_Coding-Tasks-Descriptors-Limit.html" title="5.3. Dealing with the select limit" /><link rel="next" href="sect-Defensive_Coding-Tasks-File_System-Foreign.html" title="6.2. Accessing the file system as a different user" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defe
 nsive_Coding-Tasks-Descriptors-Limit.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-File_System-Foreign.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="chapter" id="chap-Defensive_Coding-Tasks-File_System" lang="en-US"><div class="titlepage"><div><div><h2 class="title">Chapter 6. File system manipulation</h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="chap-Defensive_Coding-Tasks-File_System.html#sect-Defensive_Coding-Tasks-File_System-Unowned">6.1. Working with files and directories owned by other users</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-File_System-Foreign.html">6.2. Accessing the file system as a different user</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-File_System-Limits.html">6.3. File system limits</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-File_Syst
 em-Features.html">6.4. File system features</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-File_System-Free_Space.html">6.5. Checking free space</a></span></dt></dl></div><div class="para">
+		In this chapter, we discuss general file system manipulation, with a focus on access files and directories to which an other, potentially untrusted user has write access.
+	</div><div class="para">
+		Temporary files are covered in their own chapter, <a class="xref" href="chap-Defensive_Coding-Tasks-Temporary_Files.html">Chapter 7, <em>Temporary files</em></a>.
+	</div><div class="section" id="sect-Defensive_Coding-Tasks-File_System-Unowned"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">6.1. Working with files and directories owned by other users</h2></div></div></div><div class="para">
+			Sometimes, it is necessary to operate on files and directories owned by other (potentially untrusted) users. For example, a system administrator could remove the home directory of a user, or a package manager could update a file in a directory which is owned by an application-specific user. This differs from accessing the file system as a specific user; see <a class="xref" href="sect-Defensive_Coding-Tasks-File_System-Foreign.html">Section 6.2, “Accessing the file system as a different user”</a>.
+		</div><div class="para">
+			Accessing files across trust boundaries faces several challenges, particularly if an entire directory tree is being traversed:
+		</div><div class="orderedlist"><ol><li class="listitem"><div class="para">
+					Another user might add file names to a writable directory at any time. This can interfere with file creation and the order of names returned by <code class="function">readdir</code>.
+				</div></li><li class="listitem"><div class="para">
+					Merely opening and closing a file can have side effects. For instance, an automounter can be triggered, or a tape device rewound. Opening a file on a local file system can block indefinitely, due to mandatory file locking, unless the <code class="literal">O_NONBLOCK</code> flag is specified.
+				</div></li><li class="listitem"><div class="para">
+					Hard links and symbolic links can redirect the effect of file system operations in unexpected ways. The <code class="literal">O_NOFOLLOW</code> and <code class="literal">AT_SYMLINK_NOFOLLOW</code> variants of system calls only affected final path name component.
+				</div></li><li class="listitem"><div class="para">
+					The structure of a directory tree can change. For example, the parent directory of what used to be a subdirectory within the directory tree being processed could suddenly point outside that directory tree.
+				</div></li></ol></div><div class="para">
+			Files should always be created with the <code class="literal">O_CREAT</code> and <code class="literal">O_EXCL</code> flags, so that creating the file will fail if it already exists. This guards against the unexpected appearance of file names, either due to creation of a new file, or hard-linking of an existing file. In multi-threaded programs, rather than manipulating the umask, create the files with mode <code class="literal">000</code> if possible, and adjust it afterwards with <code class="function">fchmod</code>.
+		</div><div class="para">
+			To avoid issues related to symbolic links and directory tree restructuring, the “<code class="literal">at</code>” variants of system calls have to be used (that is, functions like <code class="function">openat</code>, <code class="function">fchownat</code>, <code class="function">fchmodat</code>, and <code class="function">unlinkat</code>, together with <code class="literal">O_NOFOLLOW</code> or <code class="literal">AT_SYMLINK_NOFOLLOW</code>). Path names passed to these functions must have just a single component (that is, without a slash). When descending, the descriptors of parent directories must be kept open. The missing <code class="literal">opendirat</code> function can be emulated with <code class="literal">openat</code> (with an <code class="literal">O_DIRECTORY</code> flag, to avoid opening special files with side effects), followed by <code class="literal">fdopendir</code>.
+		</div><div class="para">
+			If the “<code class="literal">at</code>” functions are not available, it is possible to emulate them by changing the current directory. (Obviously, this only works if the process is not multi-threaded.) <code class="function">fchdir</code> has to be used to change the current directory, and the descriptors of the parent directories have to be kept open, just as with the “<code class="literal">at</code>”-based approach. <code class="literal">chdir("...")</code> is unsafe because it might ascend outside the intended directory tree.
+		</div><div class="para">
+			This “<code class="literal">at</code>” function emulation is currently required when manipulating extended attributes. In this case, the <code class="function">lsetxattr</code> function can be used, with a relative path name consisting of a single component. This also applies to SELinux contexts and the <code class="function">lsetfilecon</code> function.
+		</div><div class="para">
+			Currently, it is not possible to avoid opening special files <span class="emphasis"><em>and</em></span> changes to files with hard links if the directory containing them is owned by an untrusted user. (Device nodes can be hard-linked, just as regular files.) <code class="function">fchmodat</code> and <code class="function">fchownat</code> affect files whose link count is greater than one. But opening the files, checking that the link count is one with <code class="function">fstat</code>, and using <code class="function">fchmod</code> and <code class="function">fchown</code> on the file descriptor may have unwanted side effects, due to item 2 above. When creating directories, it is therefore important to change the ownership and permissions only after it has been fully created. Until that point, file names are stable, and no files with unexpected hard links can be introduced.
+		</div><div class="para">
+			Similarly, when just reading a directory owned by an untrusted user, it is currently impossible to reliably avoid opening special files.
+		</div><div class="para">
+			There is no workaround against the instability of the file list returned by <code class="function">readdir</code>. Concurrent modification of the directory can result in a list of files being returned which never actually existed on disk.
+		</div><div class="para">
+			Hard links and symbolic links can be safely deleted using <code class="function">unlinkat</code> without further checks because deletion only affects the name within the directory tree being processed.
+		</div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-Tasks-Descriptors-Limit.html"><strong>Prev</strong>5.3. Dealing with the select limit</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-File_System-Foreign.html"><strong>Next</strong>6.2. Accessing the file system as a different user</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/chap-Defensive_Coding-Tasks-Library_Design.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/chap-Defensive_Coding-Tasks-Library_Design.html
new file mode 100644
index 0000000..545f81b
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/chap-Defensive_Coding-Tasks-Library_Design.html
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 4. Library Design</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="pt02.html" title="Part II. Specific Programming Tasks" /><link rel="prev" href="pt02.html" title="Part II. Specific Programming Tasks" /><link rel="next" href="ch04s02.html" title="4.2. Object orientation" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="pt02.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="ch04s02.html"><strong>Next</strong
 ></a></li></ul><div xml:lang="en-US" class="chapter" id="chap-Defensive_Coding-Tasks-Library_Design" lang="en-US"><div class="titlepage"><div><div><h2 class="title">Chapter 4. Library Design</h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="chap-Defensive_Coding-Tasks-Library_Design.html#idp22469520">4.1. State management</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Defensive_Coding-Tasks-Library_Design.html#idp12096672">4.1.1. Global state</a></span></dt><dt><span class="section"><a href="chap-Defensive_Coding-Tasks-Library_Design.html#idp12961392">4.1.2. Handles</a></span></dt></dl></dd><dt><span class="section"><a href="ch04s02.html">4.2. Object orientation</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Library_Design-Callbacks.html">4.3. Callbacks</a></span></dt><dt><span class="section"><a href="ch04s04.html">4.4. Process attributes</a></span></dt></dl></div><div class="para">
+		Throught this section, the term <span class="emphasis"><em>client code</em></span> refers to applications and other libraries using the library.
+	</div><div class="section" id="idp22469520"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idp22469520">4.1. State management</h2></div></div></div><div class="para">
+
+		</div><div class="section" id="idp12096672"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idp12096672">4.1.1. Global state</h3></div></div></div><div class="para">
+				Global state should be avoided.
+			</div><div class="para">
+				If this is impossible, the global state must be protected with a lock. For C/C++, you can use the <code class="function">pthread_mutex_lock</code> and <code class="function">pthread_mutex_unlock</code> functions without linking against <code class="literal">-lpthread</code> because the system provides stubs for non-threaded processes.
+			</div><div class="para">
+				For compatibility with <code class="function">fork</code>, these locks should be acquired and released in helpers registered with <code class="function">pthread_atfork</code>. This function is not available without <code class="literal">-lpthread</code>, so you need to use <code class="function">dlsym</code> or a weak symbol to obtain its address.
+			</div><div class="para">
+				If you need <code class="function">fork</code> protection for other reasons, you should store the process ID and compare it to the value returned by <code class="function">getpid</code> each time you access the global state. (<code class="function">getpid</code> is not implemented as a system call and is fast.) If the value changes, you know that you have to re-create the state object. (This needs to be combined with locking, of course.)
+			</div></div><div class="section" id="idp12961392"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idp12961392">4.1.2. Handles</h3></div></div></div><div class="para">
+				Library state should be kept behind a curtain. Client code should receive only a handle. In C, the handle can be a pointer to an incomplete <code class="literal">struct</code>. In C++, the handle can be a pointer to an abstract base class, or it can be hidden using the pointer-to-implementation idiom.
+			</div><div class="para">
+				The library should provide functions for creating and destroying handles. (In C++, it is possible to use virtual destructors for the latter.) Consistency between creation and destruction of handles is strongly recommended: If the client code created a handle, it is the responsibility of the client code to destroy it. (This is not always possible or convenient, so sometimes, a transfer of ownership has to happen.)
+			</div><div class="para">
+				Using handles ensures that it is possible to change the way the library represents state in a way that is transparent to client code. This is important to facilitate security updates and many other code changes.
+			</div><div class="para">
+				It is not always necessary to protect state behind a handle with a lock. This depends on the level of thread safety the library provides.
+			</div></div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="pt02.html"><strong>Prev</strong>Part II. Specific Programming Tasks</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="ch04s02.html"><strong>Next</strong>4.2. Object orientation</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/chap-Defensive_Coding-Tasks-Serialization.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/chap-Defensive_Coding-Tasks-Serialization.html
new file mode 100644
index 0000000..4fc33b5
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/chap-Defensive_Coding-Tasks-Serialization.html
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 9. Serialization and Deserialization</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="pt02.html" title="Part II. Specific Programming Tasks" /><link rel="prev" href="sect-Defensive_Coding-Tasks-Processes-Fork-Parallel.html" title="8.6. fork as a primitive for parallelism" /><link rel="next" href="ch09s02.html" title="9.2. Protocol design" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-Tasks-Processes-Fork-Parallel.html"><strong>P
 rev</strong></a></li><li class="next"><a accesskey="n" href="ch09s02.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="chapter" id="chap-Defensive_Coding-Tasks-Serialization" lang="en-US"><div class="titlepage"><div><div><h2 class="title">Chapter 9. Serialization and Deserialization</h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="chap-Defensive_Coding-Tasks-Serialization.html#sect-Defensive_Coding-Tasks-Serialization-Decoders">9.1. Recommendations for manually written decoders</a></span></dt><dt><span class="section"><a href="ch09s02.html">9.2. Protocol design</a></span></dt><dt><span class="section"><a href="ch09s03.html">9.3. Library support for deserialization</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Serialization-XML.html">9.4. XML serialization</a></span></dt><dd><dl><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Serialization-XML.html#sect-Defensive_Coding-Tasks-Ser
 ialization-XML-External">9.4.1. External references</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Serialization-XML-Entities.html">9.4.2. Entity expansion</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Serialization-XML-XInclude.html">9.4.3. XInclude processing</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Serialization-XML-Validation.html">9.4.4. Algorithmic complexity of XML validation</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Serialization-XML-Expat.html">9.4.5. Using Expat for XML parsing</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse.html">9.4.6. Using OpenJDK for XML parsing and validation</a></span></dt></dl></dd><dt><span class="section"><a href="ch09s05.html">9.5. Protocol Encoders</a></span></dt></dl></div><div class="para">
+		Protocol decoders and file format parsers are often the most-exposed part of an application because they are exposed with little or no user interaction and before any authentication and security checks are made. They are also difficult to write robustly in languages which are not memory-safe.
+	</div><div class="section" id="sect-Defensive_Coding-Tasks-Serialization-Decoders"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">9.1. Recommendations for manually written decoders</h2></div></div></div><div class="para">
+			For C and C++, the advice in <a class="xref" href="chap-Defensive_Coding-C.html#sect-Defensive_Coding-C-Pointers">Section 1.1.2, “Recommendations for pointers and array handling”</a> applies. In addition, avoid non-character pointers directly into input buffers. Pointer misalignment causes crashes on some architectures.
+		</div><div class="para">
+			When reading variable-sized objects, do not allocate large amounts of data solely based on the value of a size field. If possible, grow the data structure as more data is read from the source, and stop when no data is available. This helps to avoid denial-of-service attacks where little amounts of input data results in enormous memory allocations during decoding. Alternatively, you can impose reasonable bounds on memory allocations, but some protocols do not permit this.
+		</div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-Tasks-Processes-Fork-Parallel.html"><strong>Prev</strong>8.6. fork as a primitive for parallelism</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="ch09s02.html"><strong>Next</strong>9.2. Protocol design</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/chap-Defensive_Coding-Tasks-Temporary_Directory.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/chap-Defensive_Coding-Tasks-Temporary_Directory.html
new file mode 100644
index 0000000..5773bbc
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/chap-Defensive_Coding-Tasks-Temporary_Directory.html
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>7.4. Temporary directories</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="chap-Defensive_Coding-Tasks-Temporary_Files.html" title="Chapter 7. Temporary files" /><link rel="prev" href="ch07s03.html" title="7.3. Temporary files without names" /><link rel="next" href="ch07s05.html" title="7.5. Compensating for unsafe file creation" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="ch07s03.html"><strong>Prev</strong></a></li><li class="next"><a a
 ccesskey="n" href="ch07s05.html"><strong>Next</strong></a></li></ul><div class="section" id="chap-Defensive_Coding-Tasks-Temporary_Directory"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">7.4. Temporary directories</h2></div></div></div><div class="para">
+			The <code class="function">mkdtemp</code> function can be used to create a temporary directory. (For determining the directory part of the file name pattern, see <a class="xref" href="chap-Defensive_Coding-Tasks-Temporary_Files.html#chap-Defensive_Coding-Tasks-Temporary_Files-Location">Section 7.1, “Obtaining the location of temporary directory”</a>.) The directory is not automatically removed. In Python, this function is available as <code class="function">tempfile.mkdtemp</code>. In Java 7, temporary directories can be created using the <code class="function">java.nio.file.Files.createTempDirectory(Path, String, FileAttribute...)</code> function.
+		</div><div class="para">
+			When creating files in the temporary directory, use automatically generated names, e.g., derived from a sequential counter. Files with externally provided names could be picked up in unexpected contexts, and crafted names could actually point outside of the tempoary directory (due to <span class="emphasis"><em>directory traversal</em></span>).
+		</div><div class="para">
+			Removing a directory tree in a completely safe manner is complicated. Unless there are overriding performance concerns, the <span class="application"><strong>rm</strong></span> program should be used, with the <code class="option">-rf</code> and <code class="option">--</code> options.
+		</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="ch07s03.html"><strong>Prev</strong>7.3. Temporary files without names</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="ch07s05.html"><strong>Next</strong>7.5. Compensating for unsafe file creation</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/chap-Defensive_Coding-Tasks-Temporary_Files.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/chap-Defensive_Coding-Tasks-Temporary_Files.html
new file mode 100644
index 0000000..31285f9
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/chap-Defensive_Coding-Tasks-Temporary_Files.html
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 7. Temporary files</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="pt02.html" title="Part II. Specific Programming Tasks" /><link rel="prev" href="sect-Defensive_Coding-Tasks-File_System-Free_Space.html" title="6.5. Checking free space" /><link rel="next" href="ch07s02.html" title="7.2. Named temporary files" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-Tasks-File_System-Free_Space.html"><strong>Prev</strong>
 </a></li><li class="next"><a accesskey="n" href="ch07s02.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="chapter" id="chap-Defensive_Coding-Tasks-Temporary_Files" lang="en-US"><div class="titlepage"><div><div><h2 class="title">Chapter 7. Temporary files</h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="chap-Defensive_Coding-Tasks-Temporary_Files.html#chap-Defensive_Coding-Tasks-Temporary_Files-Location">7.1. Obtaining the location of temporary directory</a></span></dt><dt><span class="section"><a href="ch07s02.html">7.2. Named temporary files</a></span></dt><dt><span class="section"><a href="ch07s03.html">7.3. Temporary files without names</a></span></dt><dt><span class="section"><a href="chap-Defensive_Coding-Tasks-Temporary_Directory.html">7.4. Temporary directories</a></span></dt><dt><span class="section"><a href="ch07s05.html">7.5. Compensating for unsafe file creation</a></span></dt></dl></div><div class="para">
+		In this chapter, we describe how to create temporary files and directories, how to remove them, and how to work with programs which do not create files in ways that a safe with a shared directory for temporary files. General file system manipulation is treated in a separate chapter, <a class="xref" href="chap-Defensive_Coding-Tasks-File_System.html">Chapter 6, <em>File system manipulation</em></a>.
+	</div><div class="para">
+		Secure creation of temporary files has four different aspects.
+	</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+				The location of the directory for temporary files must be obtained in a secure manner (that is, untrusted environment variables must be ignored, see <a class="xref" href="ch08s03.html#sect-Defensive_Coding-Tasks-secure_getenv">Section 8.3.1, “Accessing environment variables”</a>).
+			</div></li><li class="listitem"><div class="para">
+				A new file must be created. Reusing an existing file must be avoided (the <code class="filename">/tmp</code> race condition). This is tricky because traditionally, system-wide temporary directories shared by all users are used.
+			</div></li><li class="listitem"><div class="para">
+				The file must be created in a way that makes it impossible for other users to open it.
+			</div></li><li class="listitem"><div class="para">
+				The descriptor for the temporary file should not leak to subprocesses.
+			</div></li></ul></div><div class="para">
+		All functions mentioned below will take care of these aspects.
+	</div><div class="para">
+		Traditionally, temporary files are often used to reduce memory usage of programs. More and more systems use RAM-based file systems such as <code class="literal">tmpfs</code> for storing temporary files, to increase performance and decrease wear on Flash storage. As a result, spooling data to temporary files does not result in any memory savings, and the related complexity can be avoided if the data is kept in process memory.
+	</div><div class="section" id="chap-Defensive_Coding-Tasks-Temporary_Files-Location"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">7.1. Obtaining the location of temporary directory</h2></div></div></div><div class="para">
+			Some functions below need the location of a directory which stores temporary files. For C/C++ programs, use the following steps to obtain that directory:
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					Use <code class="function">secure_getenv</code> to obtain the value of the <code class="literal">TMPDIR</code> environment variable. If it is set, convert the path to a fully-resolved absolute path, using <code class="literal">realpath(path, NULL)</code>. Check if the new path refers to a directory and is writeable. In this case, use it as the temporary directory.
+				</div></li><li class="listitem"><div class="para">
+					Fall back to <code class="filename">/tmp</code>.
+				</div></li></ul></div><div class="para">
+			In Python, you can use the <code class="varname">tempfile.tempdir</code> variable.
+		</div><div class="para">
+			Java does not support SUID/SGID programs, so you can use the <code class="function">java.lang.System.getenv(String)</code> method to obtain the value of the <code class="literal">TMPDIR</code> environment variable, and follow the two steps described above. (Java's default directory selection does not honor <code class="literal">TMPDIR</code>.)
+		</div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-Tasks-File_System-Free_Space.html"><strong>Prev</strong>6.5. Checking free space</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="ch07s02.html"><strong>Next</strong>7.2. Named temporary files</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/index.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/index.html
new file mode 100644
index 0000000..7a12134
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/index.html
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Defensive Coding</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><meta name="description" content="This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations." /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="next" href="pt01.html" title="Part I. Programming Languages" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"></li><li class="next"><a accesskey="n" href="pt01.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="book" id="idm5954336" lang="en-US"><div class="titlepage"><div><div class="producttitle" font-family="sans-serif,Symbol,ZapfDingbats" font-weight="bold" font-size="12pt" text-a
 lign="center"><span class="productname">Fedora Security Team</span> <span class="productnumber"></span></div><div font-family="sans-serif,Symbol,ZapfDingbats" font-weight="bold" font-size="12pt" text-align="center"><h1 id="idm5954336" class="title">Defensive Coding</h1></div><div font-family="sans-serif,Symbol,ZapfDingbats" font-weight="bold" font-size="12pt" text-align="center"><h2 class="subtitle">A Guide to Improving Software Security</h2></div><p class="edition">Edition 1</p><div font-family="sans-serif,Symbol,ZapfDingbats" font-weight="bold" font-size="12pt" text-align="center"><h3 class="corpauthor">
+		<span class="inlinemediaobject"><object data="Common_Content/images/redhat-logo.svg" type="image/svg+xml"> </object></span>
+
+	</h3></div><div font-family="sans-serif,Symbol,ZapfDingbats" font-weight="bold" font-size="12pt" text-align="center"><div xml:lang="en-US" class="authorgroup" lang="en-US"><div class="author"><h3 class="author"><span class="firstname">Florian</span> <span class="surname">Weimer</span></h3><div class="affiliation"><span class="orgname">Red Hat</span> <span class="orgdiv">Product Security Team</span></div><code class="email"><a class="email" href="mailto:fweimer at redhat.com">fweimer at redhat.com</a></code></div></div></div><hr /><div font-family="sans-serif,Symbol,ZapfDingbats" font-weight="bold" font-size="12pt" text-align="center"><div id="idp20624960" class="legalnotice"><h1 class="legalnotice">Legal Notice</h1><div class="para">
+		Copyright <span class="trademark"></span>© 2012 Red Hat, Inc.
+	</div><div class="para">
+		The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at <a href="http://creativecommons.org/licenses/by-sa/3.0/">http://creativecommons.org/licenses/by-sa/3.0/</a>. The original authors of this document, and Red Hat, designate the Fedora Project as the "Attribution Party" for purposes of CC-BY-SA. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
+	</div><div class="para">
+		Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
+	</div><div class="para">
+		Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
+	</div><div class="para">
+		For guidelines on the permitted uses of the Fedora trademarks, refer to <a href="https://fedoraproject.org/wiki/Legal:Trademark_guidelines">https://fedoraproject.org/wiki/Legal:Trademark_guidelines</a>.
+	</div><div class="para">
+		<span class="trademark">Linux</span>® is the registered trademark of Linus Torvalds in the United States and other countries.
+	</div><div class="para">
+		<span class="trademark">Java</span>® is a registered trademark of Oracle and/or its affiliates.
+	</div><div class="para">
+		<span class="trademark">XFS</span>® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
+	</div><div class="para">
+		<span class="trademark">MySQL</span>® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
+	</div><div class="para">
+		All other trademarks are the property of their respective owners.
+	</div></div></div><div font-family="sans-serif,Symbol,ZapfDingbats" font-weight="bold" font-size="12pt" text-align="center"><div class="abstract"><h6>Abstract</h6><div class="para">
+			This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.
+		</div></div></div></div><hr /></div><div class="toc"><dl><dt><span class="part"><a href="pt01.html">I. Programming Languages</a></span></dt><dd><dl><dt><span class="chapter"><a href="chap-Defensive_Coding-C.html">1. The C Programming Language</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Defensive_Coding-C.html#sect-Defensive_Coding-C-Language">1.1. The core language</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Defensive_Coding-C.html#sect-Defensive_Coding-C-Undefined">1.1.1. Undefined behavior</a></span></dt><dt><span class="section"><a href="chap-Defensive_Coding-C.html#sect-Defensive_Coding-C-Pointers">1.1.2. Recommendations for pointers and array handling</a></span></dt><dt><span class="section"><a href="chap-Defensive_Coding-C.html#sect-Defensive_Coding-C-Arithmetic">1.1.3. Recommendations for integer arithmetic</a></span></dt></dl></dd><dt><span class="section"><a href="sect-Defensive_Coding-C-Libc.html">1.2. The C standard library<
 /a></span></dt><dd><dl><dt><span class="section"><a href="sect-Defensive_Coding-C-Libc.html#sect-Defensive_Coding-C-Absolutely-Banned">1.2.1. Absolutely banned interfaces</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-C-Avoid.html">1.2.2. Functions to avoid</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-C-String-Functions-Length.html">1.2.3. String Functions With Explicit Length Arguments</a></span></dt></dl></dd><dt><span class="section"><a href="sect-Defensive_Coding-C-Allocators.html">1.3. Memory allocators</a></span></dt><dd><dl><dt><span class="section"><a href="sect-Defensive_Coding-C-Allocators.html#idp17665200">1.3.1. <code class="function">malloc</code> and related functions</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-C-Allocators-alloca.html">1.3.2. <code class="function">alloca</code> and other forms of stack-based allocation</a></span></dt><dt><span class="section"><a href="sect-Defensi
 ve_Coding-C-Allocators-Arrays.html">1.3.3. Array allocation</a></span></dt><dt><span class="section"><a href="ch01s03s04.html">1.3.4. Custom memory allocators</a></span></dt><dt><span class="section"><a href="ch01s03s05.html">1.3.5. Conservative garbage collection</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="chap-Defensive_Coding-CXX.html">2. The C++ Programming Language</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Defensive_Coding-CXX.html#sect-Defensive_Coding-CXX-Language">2.1. The core language</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Defensive_Coding-CXX.html#idp16154880">2.1.1. Array allocation with <code class="literal">operator new[]</code></a></span></dt><dt><span class="section"><a href="chap-Defensive_Coding-CXX.html#idp25753872">2.1.2. Overloading</a></span></dt><dt><span class="section"><a href="chap-Defensive_Coding-CXX.html#idp17591600">2.1.3. ABI compatibility and preparing for security updates<
 /a></span></dt><dt><span class="section"><a href="chap-Defensive_Coding-CXX.html#sect-Defensive_Coding-CXX-Language-CXX11">2.1.4. C++0X and C++11 support</a></span></dt></dl></dd><dt><span class="section"><a href="sect-Defensive_Coding-CXX-Std.html">2.2. The C++ standard library</a></span></dt><dd><dl><dt><span class="section"><a href="sect-Defensive_Coding-CXX-Std.html#idp16149312">2.2.1. Containers and <code class="literal">operator[]</code></a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="chap-Defensive_Coding-Python.html">3. The Python Programming Language</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Defensive_Coding-Python.html#idp22529920">3.1. Dangerous standard library features</a></span></dt><dt><span class="section"><a href="ch03s02.html">3.2. Run-time compilation and code generation</a></span></dt><dt><span class="section"><a href="ch03s03.html">3.3. Sandboxing</a></span></dt></dl></dd></dl></dd><dt><span class="part"><a href
 ="pt02.html">II. Specific Programming Tasks</a></span></dt><dd><dl><dt><span class="chapter"><a href="chap-Defensive_Coding-Tasks-Library_Design.html">4. Library Design</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Defensive_Coding-Tasks-Library_Design.html#idp22469520">4.1. State management</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Defensive_Coding-Tasks-Library_Design.html#idp12096672">4.1.1. Global state</a></span></dt><dt><span class="section"><a href="chap-Defensive_Coding-Tasks-Library_Design.html#idp12961392">4.1.2. Handles</a></span></dt></dl></dd><dt><span class="section"><a href="ch04s02.html">4.2. Object orientation</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Library_Design-Callbacks.html">4.3. Callbacks</a></span></dt><dt><span class="section"><a href="ch04s04.html">4.4. Process attributes</a></span></dt></dl></dd><dt><span class="chapter"><a href="sect-Defensive_Coding-Tasks-Descriptors.html
 ">5. File Descriptor Management</a></span></dt><dd><dl><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Descriptors.html#idp13594256">5.1. Closing descriptors</a></span></dt><dd><dl><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Descriptors.html#idp21950720">5.1.1. Error handling during descriptor close</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Descriptors.html#idp21700096">5.1.2. Closing descriptors and race conditions</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Descriptors.html#idp21795232">5.1.3. Lingering state after close</a></span></dt></dl></dd><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Descriptors-Child_Processes.html">5.2. Preventing file descriptor leaks to child processes</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Descriptors-Limit.html">5.3. Dealing with the <code class="function">select</code> limit</a></span>
 </dt></dl></dd><dt><span class="chapter"><a href="chap-Defensive_Coding-Tasks-File_System.html">6. File system manipulation</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Defensive_Coding-Tasks-File_System.html#sect-Defensive_Coding-Tasks-File_System-Unowned">6.1. Working with files and directories owned by other users</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-File_System-Foreign.html">6.2. Accessing the file system as a different user</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-File_System-Limits.html">6.3. File system limits</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-File_System-Features.html">6.4. File system features</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-File_System-Free_Space.html">6.5. Checking free space</a></span></dt></dl></dd><dt><span class="chapter"><a href="chap-Defensive_Coding-Tasks-Temporary_Files.htm
 l">7. Temporary files</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Defensive_Coding-Tasks-Temporary_Files.html#chap-Defensive_Coding-Tasks-Temporary_Files-Location">7.1. Obtaining the location of temporary directory</a></span></dt><dt><span class="section"><a href="ch07s02.html">7.2. Named temporary files</a></span></dt><dt><span class="section"><a href="ch07s03.html">7.3. Temporary files without names</a></span></dt><dt><span class="section"><a href="chap-Defensive_Coding-Tasks-Temporary_Directory.html">7.4. Temporary directories</a></span></dt><dt><span class="section"><a href="ch07s05.html">7.5. Compensating for unsafe file creation</a></span></dt></dl></dd><dt><span class="chapter"><a href="sect-Defensive_Coding-Tasks-Processes.html">8. Processes</a></span></dt><dd><dl><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Processes.html#sect-Defensive_Coding-Tasks-Processes-Creation">8.1. Safe process creation</a></span></dt><dd><dl><dt><span c
 lass="section"><a href="sect-Defensive_Coding-Tasks-Processes.html#idp21252560">8.1.1. Obtaining the program path and the command line template</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Processes.html#sect-Defensive_Coding-Tasks-Processes-execve">8.1.2. Bypassing the shell</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Processes.html#sect-Defensive_Coding-Tasks-Processes-environ">8.1.3. Specifying the process environment</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Processes.html#idm7005712">8.1.4. Robust argument list processing</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Processes.html#sect-Defensive_Coding-Tasks-Processes-Command_Line_Visibility">8.1.5. Passing secrets to subprocesses</a></span></dt></dl></dd><dt><span class="section"><a href="ch08s02.html">8.2. Handling child process termination</a></span></dt><dt><span class="section"><a 
 href="ch08s03.html">8.3. <code class="literal">SUID</code>/<code class="literal">SGID</code> processes</a></span></dt><dd><dl><dt><span class="section"><a href="ch08s03.html#sect-Defensive_Coding-Tasks-secure_getenv">8.3.1. Accessing environment variables</a></span></dt></dl></dd><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Processes-Daemons.html">8.4. Daemons</a></span></dt><dt><span class="section"><a href="ch08s05.html">8.5. Semantics of command line arguments</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Processes-Fork-Parallel.html">8.6. <code class="function">fork</code> as a primitive for parallelism</a></span></dt></dl></dd><dt><span class="chapter"><a href="chap-Defensive_Coding-Tasks-Serialization.html">9. Serialization and Deserialization</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Defensive_Coding-Tasks-Serialization.html#sect-Defensive_Coding-Tasks-Serialization-Decoders">9.1. Recommendations f
 or manually written decoders</a></span></dt><dt><span class="section"><a href="ch09s02.html">9.2. Protocol design</a></span></dt><dt><span class="section"><a href="ch09s03.html">9.3. Library support for deserialization</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Serialization-XML.html">9.4. XML serialization</a></span></dt><dd><dl><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Serialization-XML.html#sect-Defensive_Coding-Tasks-Serialization-XML-External">9.4.1. External references</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Serialization-XML-Entities.html">9.4.2. Entity expansion</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Serialization-XML-XInclude.html">9.4.3. XInclude processing</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Serialization-XML-Validation.html">9.4.4. Algorithmic complexity of XML validation</a></span></dt><dt>
 <span class="section"><a href="sect-Defensive_Coding-Tasks-Serialization-XML-Expat.html">9.4.5. Using Expat for XML parsing</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse.html">9.4.6. Using OpenJDK for XML parsing and validation</a></span></dt></dl></dd><dt><span class="section"><a href="ch09s05.html">9.5. Protocol Encoders</a></span></dt></dl></dd><dt><span class="chapter"><a href="chap-Defensive_Coding-Tasks-Cryptography.html">10. Cryptography</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Defensive_Coding-Tasks-Cryptography.html#idp28411408">10.1. Primitives</a></span></dt><dt><span class="section"><a href="ch10s02.html">10.2. Randomness</a></span></dt></dl></dd></dl></dd><dt><span class="part"><a href="pt03.html">III. Implementing Security Features</a></span></dt><dd><dl><dt><span class="chapter"><a href="chap-Defensive_Coding-Authentication.html">11. Authentication and Authorization</a></span
 ></dt><dd><dl><dt><span class="section"><a href="chap-Defensive_Coding-Authentication.html#sect-Defensive_Coding-Authentication-Server">11.1. Authenticating servers</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Authentication-Host_based.html">11.2. Host-based authentication</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Authentication-UNIX_Domain.html">11.3. UNIX domain socket authentication</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Authentication-Netlink.html">11.4. <code class="literal">AF_NETLINK</code> authentication of origin</a></span></dt></dl></dd><dt><span class="chapter"><a href="chap-Defensive_Coding-TLS.html">12. Transport Layer Security</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Defensive_Coding-TLS.html#sect-Defensive_Coding-TLS-Pitfalls">12.1. Common Pitfalls</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Defensive_Coding-TLS.html#sect-Defensive
 _Coding-TLS-OpenSSL">12.1.1. OpenSSL Pitfalls</a></span></dt><dt><span class="section"><a href="chap-Defensive_Coding-TLS.html#sect-Defensive_Coding-TLS-Pitfalls-GNUTLS">12.1.2. GNUTLS Pitfalls</a></span></dt><dt><span class="section"><a href="chap-Defensive_Coding-TLS.html#sect-Defensive_Coding-TLS-Pitfalls-OpenJDK">12.1.3. OpenJDK Pitfalls</a></span></dt><dt><span class="section"><a href="chap-Defensive_Coding-TLS.html#sect-Defensive_Coding-TLS-Pitfalls-NSS">12.1.4. NSS Pitfalls</a></span></dt></dl></dd><dt><span class="section"><a href="sect-Defensive_Coding-TLS-Client.html">12.2. TLS Clients</a></span></dt><dd><dl><dt><span class="section"><a href="sect-Defensive_Coding-TLS-Client.html#idp16548832">12.2.1. Implementation TLS Clients With OpenSSL</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-TLS-Client-GNUTLS.html">12.2.2. Implementation TLS Clients With GNUTLS</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-TLS-Client-Ope
 nJDK.html">12.2.3. Implementing TLS Clients With OpenJDK</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-TLS-Client-NSS.html">12.2.4. Implementing TLS Clients With NSS</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-TLS-Client-Python.html">12.2.5. Implementing TLS Clients With Python</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="appendix"><a href="appe-UEFI_Secure_Boot_Guide-Revision_History.html">A. Revision History</a></span></dt></dl></div></div><ul class="docnav"><li class="previous"></li><li class="next"><a accesskey="n" href="pt01.html"><strong>Next</strong>Part I. Programming Languages</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/pt01.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/pt01.html
new file mode 100644
index 0000000..5b450ba
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/pt01.html
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Part I. Programming Languages</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="index.html" title="Defensive Coding" /><link rel="prev" href="index.html" title="Defensive Coding" /><link rel="next" href="chap-Defensive_Coding-C.html" title="Chapter 1. The C Programming Language" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="index.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="chap-Defensive_Coding-C.html"><strong>Next
 </strong></a></li></ul><div class="part" id="idm5950592"><div class="titlepage"><div><div text-align="center"><h1 class="title">Part I. Programming Languages</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="chapter"><a href="chap-Defensive_Coding-C.html">1. The C Programming Language</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Defensive_Coding-C.html#sect-Defensive_Coding-C-Language">1.1. The core language</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Defensive_Coding-C.html#sect-Defensive_Coding-C-Undefined">1.1.1. Undefined behavior</a></span></dt><dt><span class="section"><a href="chap-Defensive_Coding-C.html#sect-Defensive_Coding-C-Pointers">1.1.2. Recommendations for pointers and array handling</a></span></dt><dt><span class="section"><a href="chap-Defensive_Coding-C.html#sect-Defensive_Coding-C-Arithmetic">1.1.3. Recommendations for integer arithmetic</a></span></dt></dl></dd><dt>
 <span class="section"><a href="sect-Defensive_Coding-C-Libc.html">1.2. The C standard library</a></span></dt><dd><dl><dt><span class="section"><a href="sect-Defensive_Coding-C-Libc.html#sect-Defensive_Coding-C-Absolutely-Banned">1.2.1. Absolutely banned interfaces</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-C-Avoid.html">1.2.2. Functions to avoid</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-C-String-Functions-Length.html">1.2.3. String Functions With Explicit Length Arguments</a></span></dt></dl></dd><dt><span class="section"><a href="sect-Defensive_Coding-C-Allocators.html">1.3. Memory allocators</a></span></dt><dd><dl><dt><span class="section"><a href="sect-Defensive_Coding-C-Allocators.html#idp17665200">1.3.1. <code class="function">malloc</code> and related functions</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-C-Allocators-alloca.html">1.3.2. <code class="function">alloca</code> and other 
 forms of stack-based allocation</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-C-Allocators-Arrays.html">1.3.3. Array allocation</a></span></dt><dt><span class="section"><a href="ch01s03s04.html">1.3.4. Custom memory allocators</a></span></dt><dt><span class="section"><a href="ch01s03s05.html">1.3.5. Conservative garbage collection</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="chap-Defensive_Coding-CXX.html">2. The C++ Programming Language</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Defensive_Coding-CXX.html#sect-Defensive_Coding-CXX-Language">2.1. The core language</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Defensive_Coding-CXX.html#idp16154880">2.1.1. Array allocation with <code class="literal">operator new[]</code></a></span></dt><dt><span class="section"><a href="chap-Defensive_Coding-CXX.html#idp25753872">2.1.2. Overloading</a></span></dt><dt><span class="section"><a href="chap-Defen
 sive_Coding-CXX.html#idp17591600">2.1.3. ABI compatibility and preparing for security updates</a></span></dt><dt><span class="section"><a href="chap-Defensive_Coding-CXX.html#sect-Defensive_Coding-CXX-Language-CXX11">2.1.4. C++0X and C++11 support</a></span></dt></dl></dd><dt><span class="section"><a href="sect-Defensive_Coding-CXX-Std.html">2.2. The C++ standard library</a></span></dt><dd><dl><dt><span class="section"><a href="sect-Defensive_Coding-CXX-Std.html#idp16149312">2.2.1. Containers and <code class="literal">operator[]</code></a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="chap-Defensive_Coding-Python.html">3. The Python Programming Language</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Defensive_Coding-Python.html#idp22529920">3.1. Dangerous standard library features</a></span></dt><dt><span class="section"><a href="ch03s02.html">3.2. Run-time compilation and code generation</a></span></dt><dt><span class="section"><a href="c
 h03s03.html">3.3. Sandboxing</a></span></dt></dl></dd></dl></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="index.html"><strong>Prev</strong>Defensive Coding</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="chap-Defensive_Coding-C.html"><strong>Next</strong>Chapter 1. The C Programming Language</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/pt02.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/pt02.html
new file mode 100644
index 0000000..fecd89d
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/pt02.html
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Part II. Specific Programming Tasks</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="index.html" title="Defensive Coding" /><link rel="prev" href="ch03s03.html" title="3.3. Sandboxing" /><link rel="next" href="chap-Defensive_Coding-Tasks-Library_Design.html" title="Chapter 4. Library Design" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="ch03s03.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="chap-Defensive_Coding-Tasks-Lib
 rary_Design.html"><strong>Next</strong></a></li></ul><div class="part" id="idm5947744"><div class="titlepage"><div><div text-align="center"><h1 class="title">Part II. Specific Programming Tasks</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="chapter"><a href="chap-Defensive_Coding-Tasks-Library_Design.html">4. Library Design</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Defensive_Coding-Tasks-Library_Design.html#idp22469520">4.1. State management</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Defensive_Coding-Tasks-Library_Design.html#idp12096672">4.1.1. Global state</a></span></dt><dt><span class="section"><a href="chap-Defensive_Coding-Tasks-Library_Design.html#idp12961392">4.1.2. Handles</a></span></dt></dl></dd><dt><span class="section"><a href="ch04s02.html">4.2. Object orientation</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Library_Design-Callbacks.
 html">4.3. Callbacks</a></span></dt><dt><span class="section"><a href="ch04s04.html">4.4. Process attributes</a></span></dt></dl></dd><dt><span class="chapter"><a href="sect-Defensive_Coding-Tasks-Descriptors.html">5. File Descriptor Management</a></span></dt><dd><dl><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Descriptors.html#idp13594256">5.1. Closing descriptors</a></span></dt><dd><dl><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Descriptors.html#idp21950720">5.1.1. Error handling during descriptor close</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Descriptors.html#idp21700096">5.1.2. Closing descriptors and race conditions</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Descriptors.html#idp21795232">5.1.3. Lingering state after close</a></span></dt></dl></dd><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Descriptors-Child_Processes.html">5.2. Preventing file 
 descriptor leaks to child processes</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Descriptors-Limit.html">5.3. Dealing with the <code class="function">select</code> limit</a></span></dt></dl></dd><dt><span class="chapter"><a href="chap-Defensive_Coding-Tasks-File_System.html">6. File system manipulation</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Defensive_Coding-Tasks-File_System.html#sect-Defensive_Coding-Tasks-File_System-Unowned">6.1. Working with files and directories owned by other users</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-File_System-Foreign.html">6.2. Accessing the file system as a different user</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-File_System-Limits.html">6.3. File system limits</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-File_System-Features.html">6.4. File system features</a></span></dt><dt><span c
 lass="section"><a href="sect-Defensive_Coding-Tasks-File_System-Free_Space.html">6.5. Checking free space</a></span></dt></dl></dd><dt><span class="chapter"><a href="chap-Defensive_Coding-Tasks-Temporary_Files.html">7. Temporary files</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Defensive_Coding-Tasks-Temporary_Files.html#chap-Defensive_Coding-Tasks-Temporary_Files-Location">7.1. Obtaining the location of temporary directory</a></span></dt><dt><span class="section"><a href="ch07s02.html">7.2. Named temporary files</a></span></dt><dt><span class="section"><a href="ch07s03.html">7.3. Temporary files without names</a></span></dt><dt><span class="section"><a href="chap-Defensive_Coding-Tasks-Temporary_Directory.html">7.4. Temporary directories</a></span></dt><dt><span class="section"><a href="ch07s05.html">7.5. Compensating for unsafe file creation</a></span></dt></dl></dd><dt><span class="chapter"><a href="sect-Defensive_Coding-Tasks-Processes.html">8. Process
 es</a></span></dt><dd><dl><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Processes.html#sect-Defensive_Coding-Tasks-Processes-Creation">8.1. Safe process creation</a></span></dt><dd><dl><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Processes.html#idp21252560">8.1.1. Obtaining the program path and the command line template</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Processes.html#sect-Defensive_Coding-Tasks-Processes-execve">8.1.2. Bypassing the shell</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Processes.html#sect-Defensive_Coding-Tasks-Processes-environ">8.1.3. Specifying the process environment</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Processes.html#idm7005712">8.1.4. Robust argument list processing</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Processes.html#sect-Defensive_Coding-Tasks-Processes-Command_L
 ine_Visibility">8.1.5. Passing secrets to subprocesses</a></span></dt></dl></dd><dt><span class="section"><a href="ch08s02.html">8.2. Handling child process termination</a></span></dt><dt><span class="section"><a href="ch08s03.html">8.3. <code class="literal">SUID</code>/<code class="literal">SGID</code> processes</a></span></dt><dd><dl><dt><span class="section"><a href="ch08s03.html#sect-Defensive_Coding-Tasks-secure_getenv">8.3.1. Accessing environment variables</a></span></dt></dl></dd><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Processes-Daemons.html">8.4. Daemons</a></span></dt><dt><span class="section"><a href="ch08s05.html">8.5. Semantics of command line arguments</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Processes-Fork-Parallel.html">8.6. <code class="function">fork</code> as a primitive for parallelism</a></span></dt></dl></dd><dt><span class="chapter"><a href="chap-Defensive_Coding-Tasks-Serialization.html">9. 
 Serialization and Deserialization</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Defensive_Coding-Tasks-Serialization.html#sect-Defensive_Coding-Tasks-Serialization-Decoders">9.1. Recommendations for manually written decoders</a></span></dt><dt><span class="section"><a href="ch09s02.html">9.2. Protocol design</a></span></dt><dt><span class="section"><a href="ch09s03.html">9.3. Library support for deserialization</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Serialization-XML.html">9.4. XML serialization</a></span></dt><dd><dl><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Serialization-XML.html#sect-Defensive_Coding-Tasks-Serialization-XML-External">9.4.1. External references</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Serialization-XML-Entities.html">9.4.2. Entity expansion</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Serialization-XML-XInclude.
 html">9.4.3. XInclude processing</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Serialization-XML-Validation.html">9.4.4. Algorithmic complexity of XML validation</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Serialization-XML-Expat.html">9.4.5. Using Expat for XML parsing</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse.html">9.4.6. Using OpenJDK for XML parsing and validation</a></span></dt></dl></dd><dt><span class="section"><a href="ch09s05.html">9.5. Protocol Encoders</a></span></dt></dl></dd><dt><span class="chapter"><a href="chap-Defensive_Coding-Tasks-Cryptography.html">10. Cryptography</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Defensive_Coding-Tasks-Cryptography.html#idp28411408">10.1. Primitives</a></span></dt><dt><span class="section"><a href="ch10s02.html">10.2. Randomness</a></span></dt></dl></dd></dl></div></div><ul cl
 ass="docnav"><li class="previous"><a accesskey="p" href="ch03s03.html"><strong>Prev</strong>3.3. Sandboxing</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="chap-Defensive_Coding-Tasks-Library_Design.html"><strong>Next</strong>Chapter 4. Library Design</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/pt03.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/pt03.html
new file mode 100644
index 0000000..e8fa0fb
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/pt03.html
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Part III. Implementing Security Features</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="index.html" title="Defensive Coding" /><link rel="prev" href="ch10s02.html" title="10.2. Randomness" /><link rel="next" href="chap-Defensive_Coding-Authentication.html" title="Chapter 11. Authentication and Authorization" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="ch10s02.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="chap-Defensive_Co
 ding-Authentication.html"><strong>Next</strong></a></li></ul><div class="part" id="idm10842480"><div class="titlepage"><div><div text-align="center"><h1 class="title">Part III. Implementing Security Features</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="chapter"><a href="chap-Defensive_Coding-Authentication.html">11. Authentication and Authorization</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Defensive_Coding-Authentication.html#sect-Defensive_Coding-Authentication-Server">11.1. Authenticating servers</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Authentication-Host_based.html">11.2. Host-based authentication</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Authentication-UNIX_Domain.html">11.3. UNIX domain socket authentication</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Authentication-Netlink.html">11.4. <code class="liter
 al">AF_NETLINK</code> authentication of origin</a></span></dt></dl></dd><dt><span class="chapter"><a href="chap-Defensive_Coding-TLS.html">12. Transport Layer Security</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Defensive_Coding-TLS.html#sect-Defensive_Coding-TLS-Pitfalls">12.1. Common Pitfalls</a></span></dt><dd><dl><dt><span class="section"><a href="chap-Defensive_Coding-TLS.html#sect-Defensive_Coding-TLS-OpenSSL">12.1.1. OpenSSL Pitfalls</a></span></dt><dt><span class="section"><a href="chap-Defensive_Coding-TLS.html#sect-Defensive_Coding-TLS-Pitfalls-GNUTLS">12.1.2. GNUTLS Pitfalls</a></span></dt><dt><span class="section"><a href="chap-Defensive_Coding-TLS.html#sect-Defensive_Coding-TLS-Pitfalls-OpenJDK">12.1.3. OpenJDK Pitfalls</a></span></dt><dt><span class="section"><a href="chap-Defensive_Coding-TLS.html#sect-Defensive_Coding-TLS-Pitfalls-NSS">12.1.4. NSS Pitfalls</a></span></dt></dl></dd><dt><span class="section"><a href="sect-Defensive_Coding-TLS
 -Client.html">12.2. TLS Clients</a></span></dt><dd><dl><dt><span class="section"><a href="sect-Defensive_Coding-TLS-Client.html#idp16548832">12.2.1. Implementation TLS Clients With OpenSSL</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-TLS-Client-GNUTLS.html">12.2.2. Implementation TLS Clients With GNUTLS</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-TLS-Client-OpenJDK.html">12.2.3. Implementing TLS Clients With OpenJDK</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-TLS-Client-NSS.html">12.2.4. Implementing TLS Clients With NSS</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-TLS-Client-Python.html">12.2.5. Implementing TLS Clients With Python</a></span></dt></dl></dd></dl></dd></dl></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="ch10s02.html"><strong>Prev</strong>10.2. Randomness</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></
 a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="chap-Defensive_Coding-Authentication.html"><strong>Next</strong>Chapter 11. Authentication and Authorization</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Authentication-Host_based.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Authentication-Host_based.html
new file mode 100644
index 0000000..3bce03e
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Authentication-Host_based.html
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>11.2. Host-based authentication</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="chap-Defensive_Coding-Authentication.html" title="Chapter 11. Authentication and Authorization" /><link rel="prev" href="chap-Defensive_Coding-Authentication.html" title="Chapter 11. Authentication and Authorization" /><link rel="next" href="sect-Defensive_Coding-Authentication-UNIX_Domain.html" title="11.3. UNIX domain socket authentication" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"
 ><a accesskey="p" href="chap-Defensive_Coding-Authentication.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Authentication-UNIX_Domain.html"><strong>Next</strong></a></li></ul><div class="section" id="sect-Defensive_Coding-Authentication-Host_based"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">11.2. Host-based authentication</h2></div></div></div><div class="para">
+			Host-based authentication uses access control lists (ACLs) to accept or deny requests from clients. Thsis authentication method comes in two flavors: IP-based (or, more generally, address-based) and name-based (with the name coming from DNS or <code class="filename">/etc/hosts</code>). IP-based ACLs often use prefix notation to extend access to entire subnets. Name-based ACLs sometimes use wildcards for adding groups of hosts (from entire DNS subtrees). (In the SSH context, host-based authentication means something completely different and is not covered in this section.)
+		</div><div class="para">
+			Host-based authentication trust the network and may not offer sufficient granularity, so it has to be considered a weak form of authentication. On the other hand, IP-based authentication can be made extremely robust and can be applied very early in input processing, so it offers an opportunity for significantly reducing the number of potential attackers for many services.
+		</div><div class="para">
+			The names returned by <code class="function">gethostbyaddr</code> and <code class="function">getnameinfo</code> functions cannot be trusted. (DNS PTR records can be set to arbitrary values, not just names belong to the address owner.) If these names are used for ACL matching, a forward lookup using <code class="function">gethostbyaddr</code> or <code class="function">getaddrinfo</code> has to be performed. The name is only valid if the original address is found among the results of the forward lookup (<span class="emphasis"><em>double-reverse lookup</em></span>).
+		</div><div class="para">
+			An empty ACL should deny all access (deny-by-default). If empty ACLs permits all access, configuring any access list must switch to deny-by-default for all unconfigured protocols, in both name-based and address-based variants.
+		</div><div class="para">
+			Similarly, if an address or name is not matched by the list, it should be denied. However, many implementations behave differently, so the actual behavior must be documented properly.
+		</div><div class="para">
+			IPv6 addresses can embed IPv4 addresses. There is no universally correct way to deal with this ambiguity. The behavior of the ACL implementation should be documented.
+		</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="chap-Defensive_Coding-Authentication.html"><strong>Prev</strong>Chapter 11. Authentication and Authorization</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Authentication-UNIX_Domain.html"><strong>Next</strong>11.3. UNIX domain socket authentication</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Authentication-Netlink.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Authentication-Netlink.html
new file mode 100644
index 0000000..42fc2c4
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Authentication-Netlink.html
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>11.4. AF_NETLINK authentication of origin</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="chap-Defensive_Coding-Authentication.html" title="Chapter 11. Authentication and Authorization" /><link rel="prev" href="sect-Defensive_Coding-Authentication-UNIX_Domain.html" title="11.3. UNIX domain socket authentication" /><link rel="next" href="chap-Defensive_Coding-TLS.html" title="Chapter 12. Transport Layer Security" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" h
 ref="sect-Defensive_Coding-Authentication-UNIX_Domain.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="chap-Defensive_Coding-TLS.html"><strong>Next</strong></a></li></ul><div class="section" id="sect-Defensive_Coding-Authentication-Netlink"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">11.4. <code class="literal">AF_NETLINK</code> authentication of origin</h2></div></div></div><div class="para">
+			Netlink messages are used as a high-performance data transfer mechanism between the kernel and the userspace. Traditionally, they are used to exchange information related to the network statck, such as routing table entries.
+		</div><div class="para">
+			When processing Netlink messages from the kernel, it is important to check that these messages actually originate from the kernel, by checking that the port ID (or PID) field <code class="literal">nl_pid</code> in the <code class="literal">sockaddr_nl</code> structure is <code class="literal">0</code>. (This structure can be obtained using <code class="function">recvfrom</code> or <code class="function">recvmsg</code>, it is different from the <code class="literal">nlmsghdr</code> structure.) The kernel does not prevent other processes from sending unicast Netlink messages, but the <code class="literal">nl_pid</code> field in the sender's socket address will be non-zero in such cases.
+		</div><div class="para">
+			Applications should not use <code class="literal">AF_NETLINK</code> sockets as an IPC mechanism among processes, but prefer UNIX domain sockets for this tasks.
+		</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-Authentication-UNIX_Domain.html"><strong>Prev</strong>11.3. UNIX domain socket authentication</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="chap-Defensive_Coding-TLS.html"><strong>Next</strong>Chapter 12. Transport Layer Security</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Authentication-UNIX_Domain.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Authentication-UNIX_Domain.html
new file mode 100644
index 0000000..f974ffd
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Authentication-UNIX_Domain.html
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>11.3. UNIX domain socket authentication</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="chap-Defensive_Coding-Authentication.html" title="Chapter 11. Authentication and Authorization" /><link rel="prev" href="sect-Defensive_Coding-Authentication-Host_based.html" title="11.2. Host-based authentication" /><link rel="next" href="sect-Defensive_Coding-Authentication-Netlink.html" title="11.4. AF_NETLINK authentication of origin" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a a
 ccesskey="p" href="sect-Defensive_Coding-Authentication-Host_based.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Authentication-Netlink.html"><strong>Next</strong></a></li></ul><div class="section" id="sect-Defensive_Coding-Authentication-UNIX_Domain"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">11.3. UNIX domain socket authentication</h2></div></div></div><div class="para">
+			UNIX domain sockets (with address family <code class="literal">AF_UNIX</code> or <code class="literal">AF_LOCAL</code>) are restricted to the local host and offer a special authentication mechanism: credentials passing.
+		</div><div class="para">
+			Nowadays, most systems support the <code class="literal">SO_PEERCRED</code> (Linux) or <code class="literal">LOCAL_PEERCRED</code> (FreeBSD) socket options, or the <code class="function">getpeereid</code> (other BSDs, MacOS X). These interfaces provide direct access to the (effective) user ID on the other end of a domain socket connect, without cooperation from the other end.
+		</div><div class="para">
+			Historically, credentials passing was implemented using ancillary data in the <code class="function">sendmsg</code> and <code class="function">recvmsg</code> functions. On some systems, only credentials data that the peer has explicitly sent can be received, and the kernel checks the data for correctness on the sending side. This means that both peers need to deal with ancillary data. Compared to that, the modern interfaces are easier to use. Both sets of interfaces vary considerably among UNIX-like systems, unfortunately.
+		</div><div class="para">
+			If you want to authenticate based on supplementary groups, you should obtain the user ID using one of these methods, and look up the list of supplementary groups using <code class="function">getpwuid</code> (or <code class="function">getpwuid_r</code>) and <code class="function">getgrouplist</code>. Using the PID and information from <code class="filename">/proc/PID/status</code> is prone to race conditions and insecure.
+		</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-Authentication-Host_based.html"><strong>Prev</strong>11.2. Host-based authentication</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Authentication-Netlink.html"><strong>Next</strong>11.4. AF_NETLINK authentication of origin</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-C-Allocators-Arrays.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-C-Allocators-Arrays.html
new file mode 100644
index 0000000..46750e5
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-C-Allocators-Arrays.html
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>1.3.3. Array allocation</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="sect-Defensive_Coding-C-Allocators.html" title="1.3. Memory allocators" /><link rel="prev" href="sect-Defensive_Coding-C-Allocators-alloca.html" title="1.3.2. alloca and other forms of stack-based allocation" /><link rel="next" href="ch01s03s04.html" title="1.3.4. Custom memory allocators" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-C-Allocato
 rs-alloca.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="ch01s03s04.html"><strong>Next</strong></a></li></ul><div class="section" id="sect-Defensive_Coding-C-Allocators-Arrays"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">1.3.3. Array allocation</h3></div></div></div><div class="para">
+			When allocating arrays, it is important to check for overflows. The <code class="function">calloc</code> function performs such checks.
+		</div><div class="para">
+			If <code class="function">malloc</code> or <code class="function">realloc</code> is used, the size check must be written manually. For instance, to allocate an array of <code class="literal">n</code> elements of type <code class="literal">T</code>, check that the requested size is not greater than <code class="literal">n / sizeof(T)</code>.
+		</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-C-Allocators-alloca.html"><strong>Prev</strong>1.3.2. alloca and other forms of stack-based allo...</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="ch01s03s04.html"><strong>Next</strong>1.3.4. Custom memory allocators</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-C-Allocators-alloca.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-C-Allocators-alloca.html
new file mode 100644
index 0000000..a6b668a
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-C-Allocators-alloca.html
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>1.3.2. alloca and other forms of stack-based allocation</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="sect-Defensive_Coding-C-Allocators.html" title="1.3. Memory allocators" /><link rel="prev" href="sect-Defensive_Coding-C-Allocators.html" title="1.3. Memory allocators" /><link rel="next" href="sect-Defensive_Coding-C-Allocators-Arrays.html" title="1.3.3. Array allocation" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-C-Allocators.html"><strong>
 Prev</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-C-Allocators-Arrays.html"><strong>Next</strong></a></li></ul><div class="section" id="sect-Defensive_Coding-C-Allocators-alloca"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">1.3.2. <code class="function">alloca</code> and other forms of stack-based allocation</h3></div></div></div><div class="para">
+			Allocation on the stack is risky because stack overflow checking is implicit. There is a guard page at the end of the memory area reserved for the stack. If the program attempts to read from or write to this guard page, a <code class="literal">SIGSEGV</code> signal is generated and the program typically terminates.
+		</div><div class="para">
+			This is sufficient for detecting typical stack overflow situations such as unbounded recursion, but it fails when the stack grows in increments larger than the size of the guard page. In this case, it is possible that the stack pointer ends up pointing into a memory area which has been allocated for a different purposes. Such misbehavior can be exploitable.
+		</div><div class="para">
+			A common source for large stack growth are calls to <code class="function">alloca</code> and related functions such as <code class="function">strdupa</code>. These functions should be avoided because of the lack of error checking. (They can be used safely if the allocated size is less than the page size (typically, 4096 bytes), but this case is relatively rare.) Additionally, relying on <code class="function">alloca</code> makes it more difficult to reorgnize the code because it is not allowed to use the pointer after the function calling <code class="function">alloca</code> has returned, even if this function has been inlined into its caller.
+		</div><div class="para">
+			Similar concerns apply to <span class="emphasis"><em>variable-length arrays</em></span> (VLAs), a feature of the C99 standard which started as a GNU extension. For large objects exceeding the page size, there is no error checking, either.
+		</div><div class="para">
+			In both cases, negative or very large sizes can trigger a stack-pointer wraparound, and the stack pointer and end up pointing into caller stack frames, which is fatal and can be exploitable.
+		</div><div class="para">
+			If you want to use <code class="function">alloca</code> or VLAs for performance reasons, consider using a small on-stack array (less than the page size, large enough to fulfill most requests). If the requested size is small enough, use the on-stack array. Otherwise, call <code class="function">malloc</code>. When exiting the function, check if <code class="function">malloc</code> had been called, and free the buffer as needed.
+		</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-C-Allocators.html"><strong>Prev</strong>1.3. Memory allocators</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-C-Allocators-Arrays.html"><strong>Next</strong>1.3.3. Array allocation</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-C-Allocators.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-C-Allocators.html
new file mode 100644
index 0000000..6264223
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-C-Allocators.html
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>1.3. Memory allocators</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="chap-Defensive_Coding-C.html" title="Chapter 1. The C Programming Language" /><link rel="prev" href="sect-Defensive_Coding-C-String-Functions-Length.html" title="1.2.3. String Functions With Explicit Length Arguments" /><link rel="next" href="sect-Defensive_Coding-C-Allocators-alloca.html" title="1.3.2. alloca and other forms of stack-based allocation" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="
 previous"><a accesskey="p" href="sect-Defensive_Coding-C-String-Functions-Length.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-C-Allocators-alloca.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="section" id="sect-Defensive_Coding-C-Allocators" lang="en-US"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">1.3. Memory allocators</h2></div></div></div><div class="section" id="idp17665200"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idp17665200">1.3.1. <code class="function">malloc</code> and related functions</h3></div></div></div><div class="para">
+			The C library interfaces for memory allocation are provided by <code class="function">malloc</code>, <code class="function">free</code> and <code class="function">realloc</code>, and the <code class="function">calloc</code> function. In addition to these generic functions, there are derived functions such as <code class="function">strdup</code> which perform allocation using <code class="function">malloc</code> internally, but do not return untyped heap memory (which could be used for any object).
+		</div><div class="para">
+			The C compiler knows about these functions and can use their expected behavior for optimizations. For instance, the compiler assumes that an existing pointer (or a pointer derived from an existing pointer by arithmetic) will not point into the memory area returned by <code class="function">malloc</code>.
+		</div><div class="para">
+			If the allocation fails, <code class="function">realloc</code> does not free the old pointer. Therefore, the idiom <code class="literal">ptr = realloc(ptr, size);</code> is wrong because the memory pointed to by <code class="literal">ptr</code> leaks in case of an error.
+		</div><div class="section" id="idp15755776"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="idp15755776">1.3.1.1. Use-after-free errors</h4></div></div></div><div class="para">
+				After <code class="function">free</code>, the pointer is invalid. Further pointer dereferences are not allowed (and are usually detected by <span class="application"><strong>valgrind</strong></span>). Less obvious is that any <span class="emphasis"><em>use</em></span> of the old pointer value is not allowed, either. In particular, comparisons with any other pointer (or the null pointer) are undefined according to the C standard.
+			</div><div class="para">
+				The same rules apply to <code class="function">realloc</code> if the memory area cannot be enlarged in-place. For instance, the compiler may assume that a comparison between the old and new pointer will always return false, so it is impossible to detect movement this way.
+			</div></div><div class="section" id="idp17031632"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="idp17031632">1.3.1.2. Handling memory allocation errors</h4></div></div></div><div class="para">
+				Recovering from out-of-memory errors is often difficult or even impossible. In these cases, <code class="function">malloc</code> and other allocation functions return a null pointer. Dereferencing this pointer lead to a crash. Such dereferences can even be exploitable for code execution if the dereference is combined with an array subscript.
+			</div><div class="para">
+				In general, if you cannot check all allocation calls and handle failure, you should abort the program on allocation failure, and not rely on the null pointer dereference to terminate the process. See <a class="xref" href="chap-Defensive_Coding-Tasks-Serialization.html#sect-Defensive_Coding-Tasks-Serialization-Decoders">Section 9.1, “Recommendations for manually written decoders”</a> for related memory allocation concerns.
+			</div></div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-C-String-Functions-Length.html"><strong>Prev</strong>1.2.3. String Functions With Explicit Length Argu...</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-C-Allocators-alloca.html"><strong>Next</strong>1.3.2. alloca and other forms of stack-based allo...</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-C-Avoid.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-C-Avoid.html
new file mode 100644
index 0000000..fe52ee6
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-C-Avoid.html
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>1.2.2. Functions to avoid</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="sect-Defensive_Coding-C-Libc.html" title="1.2. The C standard library" /><link rel="prev" href="sect-Defensive_Coding-C-Libc.html" title="1.2. The C standard library" /><link rel="next" href="sect-Defensive_Coding-C-String-Functions-Length.html" title="1.2.3. String Functions With Explicit Length Arguments" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive
 _Coding-C-Libc.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-C-String-Functions-Length.html"><strong>Next</strong></a></li></ul><div class="section" id="sect-Defensive_Coding-C-Avoid"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">1.2.2. Functions to avoid</h3></div></div></div><div class="para">
+			The following string manipulation functions can be used securely in principle, but their use should be avoided because they are difficult to use correctly. Calls to these functions can be replaced with <code class="function">asprintf</code> or <code class="function">vasprintf</code>. (For non-GNU targets, these functions are available from Gnulib.) In some cases, the <code class="function">snprintf</code> function might be a suitable replacement, see <a class="xref" href="sect-Defensive_Coding-C-String-Functions-Length.html">Section 1.2.3, “String Functions With Explicit Length Arguments”</a>.
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					<code class="function">sprintf</code>
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">strcat</code>
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">strcpy</code>
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">vsprintf</code>
+				</div></li></ul></div><div class="para">
+			Use the indicated replacements for the functions below.
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					<code class="function">alloca</code> ⟶ <code class="function">malloc</code> and <code class="function">free</code> (see <a class="xref" href="sect-Defensive_Coding-C-Allocators-alloca.html">Section 1.3.2, “<code class="function">alloca</code> and other forms of stack-based allocation”</a>)
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">putenv</code> ⟶ explicit <code class="varname">envp</code> argument in process creation (see <a class="xref" href="sect-Defensive_Coding-Tasks-Processes.html#sect-Defensive_Coding-Tasks-Processes-environ">Section 8.1.3, “Specifying the process environment”</a>)
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">setenv</code> ⟶ explicit <code class="varname">envp</code> argument in process creation (see <a class="xref" href="sect-Defensive_Coding-Tasks-Processes.html#sect-Defensive_Coding-Tasks-Processes-environ">Section 8.1.3, “Specifying the process environment”</a>)
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">strdupa</code> ⟶ <code class="function">strdup</code> and <code class="function">free</code> (see <a class="xref" href="sect-Defensive_Coding-C-Allocators-alloca.html">Section 1.3.2, “<code class="function">alloca</code> and other forms of stack-based allocation”</a>)
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">strndupa</code> ⟶ <code class="function">strndup</code> and <code class="function">free</code> (see <a class="xref" href="sect-Defensive_Coding-C-Allocators-alloca.html">Section 1.3.2, “<code class="function">alloca</code> and other forms of stack-based allocation”</a>)
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">system</code> ⟶ <code class="function">posix_spawn</code> or <code class="function">fork</code>/<code class="function">execve</code>/ (see <a class="xref" href="sect-Defensive_Coding-Tasks-Processes.html#sect-Defensive_Coding-Tasks-Processes-execve">Section 8.1.2, “Bypassing the shell”</a>)
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">unsetenv</code> ⟶ explicit <code class="varname">envp</code> argument in process creation (see <a class="xref" href="sect-Defensive_Coding-Tasks-Processes.html#sect-Defensive_Coding-Tasks-Processes-environ">Section 8.1.3, “Specifying the process environment”</a>)
+				</div></li></ul></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-C-Libc.html"><strong>Prev</strong>1.2. The C standard library</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-C-String-Functions-Length.html"><strong>Next</strong>1.2.3. String Functions With Explicit Length Argu...</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-C-Libc.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-C-Libc.html
new file mode 100644
index 0000000..dc0304c
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-C-Libc.html
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>1.2. The C standard library</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="chap-Defensive_Coding-C.html" title="Chapter 1. The C Programming Language" /><link rel="prev" href="chap-Defensive_Coding-C.html" title="Chapter 1. The C Programming Language" /><link rel="next" href="sect-Defensive_Coding-C-Avoid.html" title="1.2.2. Functions to avoid" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="chap-Defensive_Coding-C.html"><strong>Prev</stron
 g></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-C-Avoid.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="section" id="sect-Defensive_Coding-C-Libc" lang="en-US"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">1.2. The C standard library</h2></div></div></div><div class="para">
+		Parts of the C standard library (and the UNIX and GNU extensions) are difficult to use, so you shoud avoid them.
+	</div><div class="para">
+		Please check the applicable documentation before using the recommended replacements. Many of these functions allocate buffers using <code class="function">malloc</code> which your code must deallocate explicitly using <code class="function">free</code>.
+	</div><div class="section" id="sect-Defensive_Coding-C-Absolutely-Banned"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">1.2.1. Absolutely banned interfaces</h3></div></div></div><div class="para">
+			The functions listed below must not be used because they are almost always unsafe. Use the indicated replacements instead.
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					<code class="function">gets</code> ⟶ <code class="function">fgets</code>
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">getwd</code> ⟶ <code class="function">getcwd</code> or <code class="function">get_current_dir_name</code>
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">readdir_r</code> ⟶ <code class="function">readdir</code>  
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">realpath</code> (with a non-NULL second parameter) ⟶ <code class="function">realpath</code> with NULL as the second parameter, or <code class="function">canonicalize_file_name</code>  
+				</div></li></ul></div><div class="para">
+			The constants listed below must not be used, either. Instead, code must allocate memory dynamically and use interfaces with length checking.
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					<code class="literal">NAME_MAX</code> (limit not actually enforced by the kernel)
+				</div></li><li class="listitem"><div class="para">
+					<code class="literal">PATH_MAX</code> (limit not actually enforced by the kernel)
+				</div></li><li class="listitem"><div class="para">
+					<code class="literal">_PC_NAME_MAX</code> (This limit, returned by the <code class="function">pathconf</code> function, is not enforced by the kernel.)
+				</div></li><li class="listitem"><div class="para">
+					<code class="literal">_PC_PATH_MAX</code> (This limit, returned by the <code class="function">pathconf</code> function, is not enforced by the kernel.)
+				</div></li></ul></div><div class="para">
+			The following structure members must not be used.
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					<code class="literal">f_namemax</code> in <code class="literal">struct statvfs</code> (limit not actually enforced by the kernel, see <code class="literal">_PC_NAME_MAX</code> above)
+				</div></li></ul></div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="chap-Defensive_Coding-C.html"><strong>Prev</strong>Chapter 1. The C Programming Language</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-C-Avoid.html"><strong>Next</strong>1.2.2. Functions to avoid</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-C-String-Functions-Length.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-C-String-Functions-Length.html
new file mode 100644
index 0000000..a507892
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-C-String-Functions-Length.html
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>1.2.3. String Functions With Explicit Length Arguments</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="sect-Defensive_Coding-C-Libc.html" title="1.2. The C standard library" /><link rel="prev" href="sect-Defensive_Coding-C-Avoid.html" title="1.2.2. Functions to avoid" /><link rel="next" href="sect-Defensive_Coding-C-Allocators.html" title="1.3. Memory allocators" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-C-Avoid.html"><strong>Prev</strong></a
 ></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-C-Allocators.html"><strong>Next</strong></a></li></ul><div class="section" id="sect-Defensive_Coding-C-String-Functions-Length"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">1.2.3. String Functions With Explicit Length Arguments</h3></div></div></div><div class="para">
+			The <code class="function">snprintf</code> function provides a way to construct a string in a statically-sized buffer. (If the buffer size is dynamic, use <code class="function">asprintf</code> instead.)
+		</div><div class="informalexample"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_DataType">char</span> fraction[<span class="perl_Float">30</span>];
+snprintf(fraction, <span class="perl_Keyword">sizeof</span>(fraction), <span class="perl_String">"%d/%d"</span>, numerator, denominator);
+</pre></div><div class="para">
+			The second argument to the <code class="function">snprintf</code> should always be the size of the buffer in the first argument (which should be a character array). Complex pointer and length arithmetic can introduce errors and nullify the security benefits of <code class="function">snprintf</code>. If you need to construct a string iteratively, by repeatedly appending fragments, consider constructing the string on the heap, increasing the buffer with <code class="function">realloc</code> as needed. (<code class="function">snprintf</code> does not support overlapping the result buffer with argument strings.)
+		</div><div class="para">
+			If you use <code class="function">vsnprintf</code> (or <code class="function">snprintf</code>) with a format string which is not a constant, but a function argument, it is important to annotate the function with a <code class="literal">format</code> function attribute, so that GCC can warn about misuse of your function (see <a class="xref" href="sect-Defensive_Coding-C-String-Functions-Length.html#ex-Defensive_Coding-C-String-Functions-format-Attribute">Example 1.4, “The <code class="literal">format</code> function attribute”</a>).
+		</div><div class="example" id="ex-Defensive_Coding-C-String-Functions-format-Attribute"><h6>Example 1.4. The <code class="literal">format</code> function attribute</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_DataType">void</span> log_format(<span class="perl_DataType">const</span> <span class="perl_DataType">char</span> *format, ...) __attribute__((format(printf, <span class="perl_Float">1</span>, <span class="perl_Float">2</span>)));
+
+<span class="perl_DataType">void</span>
+log_format(<span class="perl_DataType">const</span> <span class="perl_DataType">char</span> *format, ...)
+{
+  <span class="perl_DataType">char</span> buf[<span class="perl_Float">1000</span>];
+  va_list ap;
+  va_start(ap, format);
+  vsnprintf(buf, <span class="perl_Keyword">sizeof</span>(buf), format, ap);
+  va_end(ap);
+  log_string(buf);
+}
+</pre></div></div><br class="example-break" /><div class="para">
+			There are other functions which operator on NUL-terminated strings and take a length argument which affects the number of bytes written to the destination: <code class="function">strncpy</code>, <code class="function">strncat</code>, and <code class="function">stpncpy</code>. These functions do not ensure that the result string is NUL-terminated. For <code class="function">strncpy</code>, NUL termination can be added this way:
+		</div><div class="informalexample"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_DataType">char</span> buf[<span class="perl_Float">10</span>];
+strncpy(buf, data, <span class="perl_Keyword">sizeof</span>(buf));
+buf[<span class="perl_Keyword">sizeof</span>(buf) - <span class="perl_Float">1</span>] = '\0';
+</pre></div><div class="para">
+			Some systems support <code class="function">strlcpy</code> and <code class="function">strlcat</code> functions which behave this way, but these functions are not part of GNU libc. Using <code class="function">snprintf</code> with a suitable format string is a simple (albeit slightly slower) replacement.
+		</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-C-Avoid.html"><strong>Prev</strong>1.2.2. Functions to avoid</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-C-Allocators.html"><strong>Next</strong>1.3. Memory allocators</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-CXX-Std.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-CXX-Std.html
new file mode 100644
index 0000000..ee805bb
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-CXX-Std.html
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>2.2. The C++ standard library</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="chap-Defensive_Coding-CXX.html" title="Chapter 2. The C++ Programming Language" /><link rel="prev" href="chap-Defensive_Coding-CXX.html" title="Chapter 2. The C++ Programming Language" /><link rel="next" href="chap-Defensive_Coding-Python.html" title="Chapter 3. The Python Programming Language" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="chap-Defensive_Coding-CX
 X.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="chap-Defensive_Coding-Python.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="section" id="sect-Defensive_Coding-CXX-Std" lang="en-US"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">2.2. The C++ standard library</h2></div></div></div><div class="para">
+		The C++ standard library includes most of its C counterpart by reference, see <a class="xref" href="sect-Defensive_Coding-C-Libc.html">Section 1.2, “The C standard library”</a>.
+	</div><div class="section" id="idp16149312"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idp16149312">2.2.1. Containers and <code class="literal">operator[]</code></h3></div></div></div><div class="para">
+			Many containers similar to <code class="literal">std::vector</code> provide both <code class="literal">operator[](size_type)</code> and a member function <code class="literal">at(size_type)</code>. This applies to <code class="literal">std::vector</code> itself, <code class="literal">std::array</code>, <code class="literal">std::string</code> and other instances of <code class="literal">std::basic_string</code>.
+		</div><div class="para">
+			<code class="literal">operator[](size_type)</code> is not required by the standard to perform bounds checking (and the implementation in GCC does not). In contrast, <code class="literal">at(size_type)</code> must perform such a check. Therefore, in code which is not performance-critical, you should prefer <code class="literal">at(size_type)</code> over <code class="literal">operator[](size_type)</code>, even though it is slightly more verbose.
+		</div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="chap-Defensive_Coding-CXX.html"><strong>Prev</strong>Chapter 2. The C++ Programming Language</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="chap-Defensive_Coding-Python.html"><strong>Next</strong>Chapter 3. The Python Programming Language</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-TLS-Client-GNUTLS.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-TLS-Client-GNUTLS.html
new file mode 100644
index 0000000..f20d5fe
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-TLS-Client-GNUTLS.html
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>12.2.2. Implementation TLS Clients With GNUTLS</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="sect-Defensive_Coding-TLS-Client.html" title="12.2. TLS Clients" /><link rel="prev" href="sect-Defensive_Coding-TLS-Client.html" title="12.2. TLS Clients" /><link rel="next" href="sect-Defensive_Coding-TLS-Client-OpenJDK.html" title="12.2.3. Implementing TLS Clients With OpenJDK" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-TLS-Client.html"><st
 rong>Prev</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-TLS-Client-OpenJDK.html"><strong>Next</strong></a></li></ul><div class="section" id="sect-Defensive_Coding-TLS-Client-GNUTLS"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">12.2.2. Implementation TLS Clients With GNUTLS</h3></div></div></div><div class="para">
+				This section describes how to implement a TLS client with full certificate validation (but without certificate revocation checking). Note that the error handling in is only exploratory and needs to be replaced before production use.
+			</div><div class="para">
+				The GNUTLS library needs explicit initialization:
+			</div><div class="informalexample" id="ex-Defensive_Coding-TLS-GNUTLS-Init"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+gnutls_global_init();
+</pre></div><div class="para">
+				Failing to do so can result in obscure failures in Base64 decoding. See <a class="xref" href="chap-Defensive_Coding-TLS.html#sect-Defensive_Coding-TLS-Pitfalls-GNUTLS">Section 12.1.2, “GNUTLS Pitfalls”</a> for additional aspects of initialization.
+			</div><div class="para">
+				Before setting up TLS connections, a credentials objects has to be allocated and initialized with the set of trusted root CAs (<a class="xref" href="sect-Defensive_Coding-TLS-Client-GNUTLS.html#ex-Defensive_Coding-TLS-Client-GNUTLS-Credentials">Example 12.9, “Initializing a GNUTLS credentials structure”</a>).
+			</div><div class="example" id="ex-Defensive_Coding-TLS-Client-GNUTLS-Credentials"><h6>Example 12.9. Initializing a GNUTLS credentials structure</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Comment">// Load the trusted CA certificates.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>gnutls_certificate_credentials_t cred = NULL;
+<span class="perl_DataType">int</span> ret = gnutls_certificate_allocate_credentials (&amp;cred);
+<span class="perl_Keyword">if</span> (ret != GNUTLS_E_SUCCESS) {
+  fprintf(stderr, <span class="perl_String">"error: gnutls_certificate_allocate_credentials: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    gnutls_strerror(ret));
+  exit(<span class="perl_Float">1</span>);
+}
+<span class="perl_Comment">// gnutls_certificate_set_x509_system_trust needs GNUTLS version 3.0</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// or newer, so we hard-code the path to the certificate store</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// instead.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_DataType">static</span> <span class="perl_DataType">const</span> <span class="perl_DataType">char</span> ca_bundle[] = <span class="perl_String">"/etc/ssl/certs/ca-bundle.crt"</span>;
+ret = gnutls_certificate_set_x509_trust_file
+  (cred, ca_bundle, GNUTLS_X509_FMT_PEM);
+<span class="perl_Keyword">if</span> (ret == 0) {
+  fprintf(stderr, <span class="perl_String">"error: no certificates found in: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>, ca_bundle);
+  exit(<span class="perl_Float">1</span>);
+}
+<span class="perl_Keyword">if</span> (ret &lt; 0) {
+  fprintf(stderr, <span class="perl_String">"error: gnutls_certificate_set_x509_trust_files(%s): %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    ca_bundle, gnutls_strerror(ret));
+  exit(<span class="perl_Float">1</span>);
+}
+</pre></div></div><br class="example-break" /><div class="para">
+				After the last TLS connection has been closed, this credentials object should be freed:
+			</div><div class="informalexample"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+gnutls_certificate_free_credentials(cred);
+</pre></div><div class="para">
+				During its lifetime, the credentials object can be used to initialize TLS session objects from multiple threads, provided that it is not changed.
+			</div><div class="para">
+				Once the TCP connection has been established, the Nagle algorithm should be disabled (see <a class="xref" href="chap-Defensive_Coding-TLS.html#ex-Defensive_Coding-TLS-Nagle">Example 12.1, “Deactivating the TCP Nagle algorithm”</a>). After that, the socket can be associated with a new GNUTLS session object. The previously allocated credentials object provides the set of root CAs. The <code class="literal">NORMAL</code> set of cipher suites and protocols provides a reasonable default. Then the TLS handshake must be initiated. This is shown in <a class="xref" href="sect-Defensive_Coding-TLS-Client-GNUTLS.html#ex-Defensive_Coding-TLS-Client-GNUTLS-Connect">Example 12.10, “Establishing a TLS client connection using GNUTLS”</a>.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-Client-GNUTLS-Connect"><h6>Example 12.10. Establishing a TLS client connection using GNUTLS</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Comment">// Create the session object.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>gnutls_session_t session;
+ret = gnutls_init(&amp;session, GNUTLS_CLIENT);
+<span class="perl_Keyword">if</span> (ret != GNUTLS_E_SUCCESS) {
+  fprintf(stderr, <span class="perl_String">"error: gnutls_init: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    gnutls_strerror(ret));
+  exit(<span class="perl_Float">1</span>);
+}
+
+<span class="perl_Comment">// Configure the cipher preferences.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_DataType">const</span> <span class="perl_DataType">char</span> *errptr = NULL;
+ret = gnutls_priority_set_direct(session, <span class="perl_String">"NORMAL"</span>, &amp;errptr);
+<span class="perl_Keyword">if</span> (ret != GNUTLS_E_SUCCESS) {
+  fprintf(stderr, <span class="perl_String">"error: gnutls_priority_set_direct: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>
+	    <span class="perl_String">"error: at: </span><span class="perl_Char">\"</span><span class="perl_String">%s</span><span class="perl_Char">\"\n</span><span class="perl_String">"</span>, gnutls_strerror(ret), errptr);
+  exit(<span class="perl_Float">1</span>);
+}
+
+<span class="perl_Comment">// Install the trusted certificates.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>ret = gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, cred);
+<span class="perl_Keyword">if</span> (ret != GNUTLS_E_SUCCESS) {
+  fprintf(stderr, <span class="perl_String">"error: gnutls_credentials_set: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    gnutls_strerror(ret));
+  exit(<span class="perl_Float">1</span>);
+}
+
+<span class="perl_Comment">// Associate the socket with the session object and set the server</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// name.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>gnutls_transport_set_ptr(session, (gnutls_transport_ptr_t)(uintptr_t)sockfd);
+ret = gnutls_server_name_set(session, GNUTLS_NAME_DNS,
+			       host, strlen(host));
+<span class="perl_Keyword">if</span> (ret != GNUTLS_E_SUCCESS) {
+  fprintf(stderr, <span class="perl_String">"error: gnutls_server_name_set: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    gnutls_strerror(ret));
+  exit(<span class="perl_Float">1</span>);
+}
+
+<span class="perl_Comment">// Establish the session.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>ret = gnutls_handshake(session);
+<span class="perl_Keyword">if</span> (ret != GNUTLS_E_SUCCESS) {
+  fprintf(stderr, <span class="perl_String">"error: gnutls_handshake: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    gnutls_strerror(ret));
+  exit(<span class="perl_Float">1</span>);
+}
+</pre></div></div><br class="example-break" /><div class="para">
+				After the handshake has been completed, the server certificate needs to be verified (<a class="xref" href="sect-Defensive_Coding-TLS-Client-GNUTLS.html#ex-Defensive_Coding-TLS-Client-GNUTLS-Verify">Example 12.11, “Verifying a server certificate using GNUTLS”</a>). In the example, the user-defined <code class="function">certificate_validity_override</code> function is called if the verification fails, so that a separate, user-specific trust store can be checked. This function call can be omitted if the functionality is not needed.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-Client-GNUTLS-Verify"><h6>Example 12.11. Verifying a server certificate using GNUTLS</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Comment">// Obtain the server certificate chain.  The server certificate</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// itself is stored in the first element of the array.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_DataType">unsigned</span> certslen = 0;
+<span class="perl_DataType">const</span> gnutls_datum_t *<span class="perl_DataType">const</span> certs =
+  gnutls_certificate_get_peers(session, &amp;certslen);
+<span class="perl_Keyword">if</span> (certs == NULL || certslen == 0) {
+  fprintf(stderr, <span class="perl_String">"error: could not obtain peer certificate</span><span class="perl_Char">\n</span><span class="perl_String">"</span>);
+  exit(<span class="perl_Float">1</span>);
+}
+
+<span class="perl_Comment">// Validate the certificate chain.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_DataType">unsigned</span> status = (<span class="perl_DataType">unsigned</span>)<span class="perl_DecVal">-1</span>;
+ret = gnutls_certificate_verify_peers2(session, &amp;status);
+<span class="perl_Keyword">if</span> (ret != GNUTLS_E_SUCCESS) {
+  fprintf(stderr, <span class="perl_String">"error: gnutls_certificate_verify_peers2: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    gnutls_strerror(ret));
+  exit(<span class="perl_Float">1</span>);
+}
+<span class="perl_Keyword">if</span> (status != 0 &amp;&amp; !certificate_validity_override(certs[0])) {
+  gnutls_datum_t msg;
+<span class="perl_Others">#if GNUTLS_VERSION_AT_LEAST_3_1_4</span><span class="perl_Others"></span>
+<span class="perl_Others"></span>  <span class="perl_DataType">int</span> type = gnutls_certificate_type_get (session);
+  ret = gnutls_certificate_verification_status_print(status, type, &amp;out, 0);
+<span class="perl_Others">#else</span><span class="perl_Others"></span>
+<span class="perl_Others"></span>  ret = <span class="perl_DecVal">-1</span>;
+<span class="perl_Others">#endif</span><span class="perl_Others"></span>
+<span class="perl_Others"></span>  <span class="perl_Keyword">if</span> (ret == 0) {
+    fprintf(stderr, <span class="perl_String">"error: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>, msg.data);
+    gnutls_free(msg.data);
+    exit(<span class="perl_Float">1</span>);
+  } <span class="perl_Keyword">else</span> {
+    fprintf(stderr, <span class="perl_String">"error: certificate validation failed with code 0x%x</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	      status);
+    exit(<span class="perl_Float">1</span>);
+  }
+}
+</pre></div></div><br class="example-break" /><div class="para">
+				In the next step (<a class="xref" href="sect-Defensive_Coding-TLS-Client-GNUTLS.html#ex-Defensive_Coding-TLS-Client-GNUTLS-Match">Example 12.12, “Matching the server host name and certificate in a GNUTLS client”</a>, the certificate must be matched against the host name (note the unusual return value from <code class="function">gnutls_x509_crt_check_hostname</code>). Again, an override function <code class="function">certificate_host_name_override</code> is called. Note that the override must be keyed to the certificate <span class="emphasis"><em>and</em></span> the host name. The function call can be omitted if the override is not needed.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-Client-GNUTLS-Match"><h6>Example 12.12. Matching the server host name and certificate in a GNUTLS client</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Comment">// Match the peer certificate against the host name.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// We can only obtain a set of DER-encoded certificates from the</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// session object, so we have to re-parse the peer certificate into</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// a certificate object.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>gnutls_x509_crt_t cert;
+ret = gnutls_x509_crt_init(&amp;cert);
+<span class="perl_Keyword">if</span> (ret != GNUTLS_E_SUCCESS) {
+  fprintf(stderr, <span class="perl_String">"error: gnutls_x509_crt_init: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    gnutls_strerror(ret));
+  exit(<span class="perl_Float">1</span>);
+}
+<span class="perl_Comment">// The peer certificate is the first certificate in the list.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>ret = gnutls_x509_crt_import(cert, certs, GNUTLS_X509_FMT_DER);
+<span class="perl_Keyword">if</span> (ret != GNUTLS_E_SUCCESS) {
+  fprintf(stderr, <span class="perl_String">"error: gnutls_x509_crt_import: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    gnutls_strerror(ret));
+  exit(<span class="perl_Float">1</span>);
+}
+ret = gnutls_x509_crt_check_hostname(cert, host);
+<span class="perl_Keyword">if</span> (ret == 0 &amp;&amp; !certificate_host_name_override(certs[0], host)) {
+  fprintf(stderr, <span class="perl_String">"error: host name does not match certificate</span><span class="perl_Char">\n</span><span class="perl_String">"</span>);
+  exit(<span class="perl_Float">1</span>);
+}
+gnutls_x509_crt_deinit(cert);
+</pre></div></div><br class="example-break" /><div class="para">
+				In newer GNUTLS versions, certificate checking and host name validation can be combined using the <code class="function">gnutls_certificate_verify_peers3</code> function.
+			</div><div class="para">
+				An established TLS session can be used for sending and receiving data, as in <a class="xref" href="sect-Defensive_Coding-TLS-Client-GNUTLS.html#ex-Defensive_Coding-TLS-GNUTLS-Use">Example 12.13, “Using a GNUTLS session”</a>.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-GNUTLS-Use"><h6>Example 12.13. Using a GNUTLS session</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_DataType">char</span> buf[4096];
+snprintf(buf, <span class="perl_Keyword">sizeof</span>(buf), <span class="perl_String">"GET / HTTP/1.0</span><span class="perl_Char">\r\n</span><span class="perl_String">Host: %s</span><span class="perl_Char">\r\n\r\n</span><span class="perl_String">"</span>, host);
+ret = gnutls_record_send(session, buf, strlen(buf));
+<span class="perl_Keyword">if</span> (ret &lt; 0) {
+  fprintf(stderr, <span class="perl_String">"error: gnutls_record_send: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>, gnutls_strerror(ret));
+  exit(<span class="perl_Float">1</span>);
+}
+ret = gnutls_record_recv(session, buf, <span class="perl_Keyword">sizeof</span>(buf));
+<span class="perl_Keyword">if</span> (ret &lt; 0) {
+  fprintf(stderr, <span class="perl_String">"error: gnutls_record_recv: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>, gnutls_strerror(ret));
+  exit(<span class="perl_Float">1</span>);
+}
+</pre></div></div><br class="example-break" /><div class="para">
+				In order to shut down a connection in an orderly manner, you should call the <code class="function">gnutls_bye</code> function. Finally, the session object can be deallocated using <code class="function">gnutls_deinit</code> (see <a class="xref" href="sect-Defensive_Coding-TLS-Client-GNUTLS.html#ex-Defensive_Coding-TLS-GNUTLS-Disconnect">Example 12.14, “Using a GNUTLS session”</a>).
+			</div><div class="example" id="ex-Defensive_Coding-TLS-GNUTLS-Disconnect"><h6>Example 12.14. Using a GNUTLS session</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Comment">// Initiate an orderly connection shutdown.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>ret = gnutls_bye(session, GNUTLS_SHUT_RDWR);
+<span class="perl_Keyword">if</span> (ret &lt; 0) {
+  fprintf(stderr, <span class="perl_String">"error: gnutls_bye: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>, gnutls_strerror(ret));
+  exit(<span class="perl_Float">1</span>);
+}
+<span class="perl_Comment">// Free the session object.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>gnutls_deinit(session);
+</pre></div></div><br class="example-break" /></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-TLS-Client.html"><strong>Prev</strong>12.2. TLS Clients</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-TLS-Client-OpenJDK.html"><strong>Next</strong>12.2.3. Implementing TLS Clients With OpenJDK</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-TLS-Client-NSS.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-TLS-Client-NSS.html
new file mode 100644
index 0000000..a19b0bb
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-TLS-Client-NSS.html
@@ -0,0 +1,231 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>12.2.4. Implementing TLS Clients With NSS</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="sect-Defensive_Coding-TLS-Client.html" title="12.2. TLS Clients" /><link rel="prev" href="sect-Defensive_Coding-TLS-Client-OpenJDK.html" title="12.2.3. Implementing TLS Clients With OpenJDK" /><link rel="next" href="sect-Defensive_Coding-TLS-Client-Python.html" title="12.2.5. Implementing TLS Clients With Python" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Def
 ensive_Coding-TLS-Client-OpenJDK.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-TLS-Client-Python.html"><strong>Next</strong></a></li></ul><div class="section" id="sect-Defensive_Coding-TLS-Client-NSS"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">12.2.4. Implementing TLS Clients With NSS</h3></div></div></div><div class="para">
+				The following code shows how to implement a simple TLS client using NSS. Note that the error handling needs replacing before production use.
+			</div><div class="para">
+				Using NSS needs several header files, as shown in <a class="xref" href="sect-Defensive_Coding-TLS-Client-NSS.html#ex-Defensive_Coding-TLS-NSS-Includes">Example 12.21, “Include files for NSS”</a>.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-NSS-Includes"><h6>Example 12.21. Include files for NSS</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Comment">// NSPR include files</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Others">#include &lt;prerror.h&gt;</span><span class="perl_Others"></span>
+<span class="perl_Others"></span><span class="perl_Others">#include &lt;prinit.h&gt;</span><span class="perl_Others"></span>
+<span class="perl_Others"></span>
+<span class="perl_Comment">// NSS include files</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Others">#include &lt;nss.h&gt;</span><span class="perl_Others"></span>
+<span class="perl_Others"></span><span class="perl_Others">#include &lt;pk11pub.h&gt;</span><span class="perl_Others"></span>
+<span class="perl_Others"></span><span class="perl_Others">#include &lt;secmod.h&gt;</span><span class="perl_Others"></span>
+<span class="perl_Others"></span><span class="perl_Others">#include &lt;ssl.h&gt;</span><span class="perl_Others"></span>
+<span class="perl_Others"></span><span class="perl_Others">#include &lt;sslproto.h&gt;</span><span class="perl_Others"></span>
+<span class="perl_Others"></span>
+<span class="perl_Comment">// Private API, no other way to turn a POSIX file descriptor into an</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// NSPR handle.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>NSPR_API(PRFileDesc*) PR_ImportTCPSocket(<span class="perl_DataType">int</span>);
+</pre></div></div><br class="example-break" /><div class="para">
+				Initializing the NSS library is a complex task (<a class="xref" href="sect-Defensive_Coding-TLS-Client-NSS.html#ex-Defensive_Coding-TLS-NSS-Init">Example 12.22, “Initializing the NSS library”</a>). It is not thread-safe. By default, the library is in export mode, and all strong ciphers are disabled. Therefore, after creating the <code class="literal">NSSInitCContext</code> object, we probe all the strong ciphers we want to use, and check if at least one of them is available. If not, we call <code class="function">NSS_SetDomesticPolicy</code> to switch to unrestricted policy mode. This function replaces the existing global cipher suite policy, that is why we avoid calling it unless absolutely necessary.
+			</div><div class="para">
+				The simplest way to configured the trusted root certificates involves loading the <code class="filename">libnssckbi.so</code> NSS module with a call to the <code class="function">SECMOD_LoadUserModule</code> function. The root certificates are compiled into this module. (The PEM module for NSS, <code class="filename">libnsspem.so</code>, offers a way to load trusted CA certificates from a file.)
+			</div><div class="example" id="ex-Defensive_Coding-TLS-NSS-Init"><h6>Example 12.22. Initializing the NSS library</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+PR_Init(PR_USER_THREAD, PR_PRIORITY_NORMAL, 0);
+NSSInitContext *<span class="perl_DataType">const</span> ctx =
+  NSS_InitContext(<span class="perl_String">"sql:/etc/pki/nssdb"</span>, <span class="perl_String">""</span>, <span class="perl_String">""</span>, <span class="perl_String">""</span>, NULL,
+		    NSS_INIT_READONLY | NSS_INIT_PK11RELOAD);
+<span class="perl_Keyword">if</span> (ctx == NULL) {
+  <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+  fprintf(stderr, <span class="perl_String">"error: NSPR error code %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    err, PR_ErrorToName(err));
+  exit(<span class="perl_Float">1</span>);
+}
+
+<span class="perl_Comment">// Ciphers to enable.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_DataType">static</span> <span class="perl_DataType">const</span> PRUint16 good_ciphers[] = {
+  TLS_RSA_WITH_AES_128_CBC_SHA,
+  TLS_RSA_WITH_AES_256_CBC_SHA,
+  SSL_RSA_WITH_3DES_EDE_CBC_SHA,
+  SSL_NULL_WITH_NULL_NULL <span class="perl_Comment">// sentinel</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>};
+
+<span class="perl_Comment">// Check if the current policy allows any strong ciphers.  If it</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// doesn't, switch to the "domestic" (unrestricted) policy.  This is</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// not thread-safe and has global impact.  Consequently, we only do</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// it if absolutely necessary.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_DataType">int</span> found_good_cipher = 0;
+<span class="perl_Keyword">for</span> (<span class="perl_DataType">const</span> PRUint16 *p = good_ciphers; *p != SSL_NULL_WITH_NULL_NULL;
+     ++p) {
+  PRInt32 policy;
+  <span class="perl_Keyword">if</span> (SSL_CipherPolicyGet(*p, &amp;policy) != SECSuccess) {
+    <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+    fprintf(stderr, <span class="perl_String">"error: policy for cipher %u: error %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	      (<span class="perl_DataType">unsigned</span>)*p, err, PR_ErrorToName(err));
+    exit(<span class="perl_Float">1</span>);
+  }
+  <span class="perl_Keyword">if</span> (policy == SSL_ALLOWED) {
+    fprintf(stderr, <span class="perl_String">"info: found cipher %x</span><span class="perl_Char">\n</span><span class="perl_String">"</span>, (<span class="perl_DataType">unsigned</span>)*p);
+    found_good_cipher = <span class="perl_Float">1</span>;
+    <span class="perl_Keyword">break</span>;
+  }
+}
+<span class="perl_Keyword">if</span> (!found_good_cipher) {
+  <span class="perl_Keyword">if</span> (NSS_SetDomesticPolicy() != SECSuccess) {
+    <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+    fprintf(stderr, <span class="perl_String">"error: NSS_SetDomesticPolicy: error %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	      err, PR_ErrorToName(err));
+    exit(<span class="perl_Float">1</span>);
+  }
+}
+
+<span class="perl_Comment">// Initialize the trusted certificate store.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_DataType">char</span> module_name[] = <span class="perl_String">"library=libnssckbi.so name=</span><span class="perl_Char">\"</span><span class="perl_String">Root Certs</span><span class="perl_Char">\"</span><span class="perl_String">"</span>;
+SECMODModule *module = SECMOD_LoadUserModule(module_name, NULL, PR_FALSE);
+<span class="perl_Keyword">if</span> (module == NULL || !module-&gt;loaded) {
+  <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+  fprintf(stderr, <span class="perl_String">"error: NSPR error code %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    err, PR_ErrorToName(err));
+  exit(<span class="perl_Float">1</span>);
+}
+</pre></div></div><br class="example-break" /><div class="para">
+				Some of the effects of the initialization can be reverted with the following function calls:
+			</div><div class="informalexample" id="ex-Defensive_Coding-TLS-NSS-Close"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+SECMOD_DestroyModule(module);
+NSS_ShutdownContext(ctx);
+</pre></div><div class="para">
+				After NSS has been initialized, the TLS connection can be created (<a class="xref" href="sect-Defensive_Coding-TLS-Client-NSS.html#ex-Defensive_Coding-TLS-Client-NSS-Connect">Example 12.23, “Creating a TLS connection with NSS”</a>). The internal <code class="function">PR_ImportTCPSocket</code> function is used to turn the POSIX file descriptor <code class="literal">sockfd</code> into an NSPR file descriptor. (This function is de-facto part of the NSS public ABI, so it will not go away.) Creating the TLS-capable file descriptor requires a <span class="emphasis"><em>model</em></span> descriptor, which is configured with the desired set of protocols and ciphers. (The <code class="literal">good_ciphers</code> variable is part of <a class="xref" href="sect-Defensive_Coding-TLS-Client-NSS.html#ex-Defensive_Coding-TLS-NSS-Init">Example 12.22, “Initializing the NSS library”</a>.) We cannot resort to disabling ciphers not on a whitelist because by default, the AES ciphe
 r suites are disabled. The model descriptor is not needed anymore after TLS support has been activated for the existing connection descriptor.
+			</div><div class="para">
+				The call to <code class="function">SSL_BadCertHook</code> can be omitted if no mechanism to override certificate verification is needed. The <code class="literal">bad_certificate</code> function must check both the host name specified for the connection and the certificate before granting the override.
+			</div><div class="para">
+				Triggering the actual handshake requires three function calls, <code class="function">SSL_ResetHandshake</code>, <code class="function">SSL_SetURL</code>, and <code class="function">SSL_ForceHandshake</code>. (If <code class="function">SSL_ResetHandshake</code> is omitted, <code class="function">SSL_ForceHandshake</code> will succeed, but the data will not be encrypted.) During the handshake, the certificate is verified and matched against the host name.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-Client-NSS-Connect"><h6>Example 12.23. Creating a TLS connection with NSS</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Comment">// Wrap the POSIX file descriptor.  This is an internal NSPR</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// function, but it is very unlikely to change.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>PRFileDesc* nspr = PR_ImportTCPSocket(sockfd);
+sockfd = <span class="perl_DecVal">-1</span>; <span class="perl_Comment">// Has been taken over by NSPR.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>
+<span class="perl_Comment">// Add the SSL layer.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>{
+  PRFileDesc *model = PR_NewTCPSocket();
+  PRFileDesc *newfd = SSL_ImportFD(NULL, model);
+  <span class="perl_Keyword">if</span> (newfd == NULL) {
+    <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+    fprintf(stderr, <span class="perl_String">"error: NSPR error code %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	      err, PR_ErrorToName(err));
+    exit(<span class="perl_Float">1</span>);
+  }
+  model = newfd;
+  newfd = NULL;
+  <span class="perl_Keyword">if</span> (SSL_OptionSet(model, SSL_ENABLE_SSL2, PR_FALSE) != SECSuccess) {
+    <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+    fprintf(stderr, <span class="perl_String">"error: set SSL_ENABLE_SSL2 error %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	      err, PR_ErrorToName(err));
+    exit(<span class="perl_Float">1</span>);
+  }
+  <span class="perl_Keyword">if</span> (SSL_OptionSet(model, SSL_V2_COMPATIBLE_HELLO, PR_FALSE) != SECSuccess) {
+    <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+    fprintf(stderr, <span class="perl_String">"error: set SSL_V2_COMPATIBLE_HELLO error %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	      err, PR_ErrorToName(err));
+    exit(<span class="perl_Float">1</span>);
+  }
+  <span class="perl_Keyword">if</span> (SSL_OptionSet(model, SSL_ENABLE_DEFLATE, PR_FALSE) != SECSuccess) {
+    <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+    fprintf(stderr, <span class="perl_String">"error: set SSL_ENABLE_DEFLATE error %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	      err, PR_ErrorToName(err));
+    exit(<span class="perl_Float">1</span>);
+  }
+
+  <span class="perl_Comment">// Disable all ciphers (except RC4-based ciphers, for backwards</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>  <span class="perl_Comment">// compatibility).</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>  <span class="perl_DataType">const</span> PRUint16 *<span class="perl_DataType">const</span> ciphers = SSL_GetImplementedCiphers();
+  <span class="perl_Keyword">for</span> (<span class="perl_DataType">unsigned</span> i = 0; i &lt; SSL_GetNumImplementedCiphers(); i++) {
+    <span class="perl_Keyword">if</span> (ciphers[i] != SSL_RSA_WITH_RC4_128_SHA
+	  &amp;&amp; ciphers[i] != SSL_RSA_WITH_RC4_128_MD5) {
+	<span class="perl_Keyword">if</span> (SSL_CipherPrefSet(model, ciphers[i], PR_FALSE) != SECSuccess) {
+	  <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+	  fprintf(stderr, <span class="perl_String">"error: disable cipher %u: error %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+		  (<span class="perl_DataType">unsigned</span>)ciphers[i], err, PR_ErrorToName(err));
+	  exit(<span class="perl_Float">1</span>);
+	}
+    }
+  }
+
+  <span class="perl_Comment">// Enable the strong ciphers.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>  <span class="perl_Keyword">for</span> (<span class="perl_DataType">const</span> PRUint16 *p = good_ciphers; *p != SSL_NULL_WITH_NULL_NULL;
+	 ++p) {
+    <span class="perl_Keyword">if</span> (SSL_CipherPrefSet(model, *p, PR_TRUE) != SECSuccess) {
+	<span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+	fprintf(stderr, <span class="perl_String">"error: enable cipher %u: error %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+		(<span class="perl_DataType">unsigned</span>)*p, err, PR_ErrorToName(err));
+	exit(<span class="perl_Float">1</span>);
+    }
+  }
+
+  <span class="perl_Comment">// Allow overriding invalid certificate.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>  <span class="perl_Keyword">if</span> (SSL_BadCertHook(model, bad_certificate, (<span class="perl_DataType">char</span> *)host) != SECSuccess) {
+    <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+    fprintf(stderr, <span class="perl_String">"error: SSL_BadCertHook error %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	      err, PR_ErrorToName(err));
+    exit(<span class="perl_Float">1</span>);
+  }
+
+  newfd = SSL_ImportFD(model, nspr);
+  <span class="perl_Keyword">if</span> (newfd == NULL) {
+    <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+    fprintf(stderr, <span class="perl_String">"error: SSL_ImportFD error %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	      err, PR_ErrorToName(err));
+    exit(<span class="perl_Float">1</span>);
+  }
+  nspr = newfd;
+  PR_Close(model);
+}
+
+<span class="perl_Comment">// Perform the handshake.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Keyword">if</span> (SSL_ResetHandshake(nspr, PR_FALSE) != SECSuccess) {
+  <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+  fprintf(stderr, <span class="perl_String">"error: SSL_ResetHandshake error %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    err, PR_ErrorToName(err));
+  exit(<span class="perl_Float">1</span>);
+}
+<span class="perl_Keyword">if</span> (SSL_SetURL(nspr, host) != SECSuccess) {
+  <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+  fprintf(stderr, <span class="perl_String">"error: SSL_SetURL error %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    err, PR_ErrorToName(err));
+  exit(<span class="perl_Float">1</span>);
+}
+<span class="perl_Keyword">if</span> (SSL_ForceHandshake(nspr) != SECSuccess) {
+  <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+  fprintf(stderr, <span class="perl_String">"error: SSL_ForceHandshake error %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    err, PR_ErrorToName(err));
+  exit(<span class="perl_Float">1</span>);
+}
+</pre></div></div><br class="example-break" /><div class="para">
+				After the connection has been established, <a class="xref" href="sect-Defensive_Coding-TLS-Client-NSS.html#ex-Defensive_Coding-TLS-NSS-Use">Example 12.24, “Using NSS for sending and receiving data”</a> shows how to use the NSPR descriptor to communicate with the server.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-NSS-Use"><h6>Example 12.24. Using NSS for sending and receiving data</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_DataType">char</span> buf[4096];
+snprintf(buf, <span class="perl_Keyword">sizeof</span>(buf), <span class="perl_String">"GET / HTTP/1.0</span><span class="perl_Char">\r\n</span><span class="perl_String">Host: %s</span><span class="perl_Char">\r\n\r\n</span><span class="perl_String">"</span>, host);
+PRInt32 ret = PR_Write(nspr, buf, strlen(buf));
+<span class="perl_Keyword">if</span> (ret &lt; 0) {
+  <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+  fprintf(stderr, <span class="perl_String">"error: PR_Write error %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    err, PR_ErrorToName(err));
+  exit(<span class="perl_Float">1</span>);
+}
+ret = PR_Read(nspr, buf, <span class="perl_Keyword">sizeof</span>(buf));
+<span class="perl_Keyword">if</span> (ret &lt; 0) {
+  <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+  fprintf(stderr, <span class="perl_String">"error: PR_Read error %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    err, PR_ErrorToName(err));
+  exit(<span class="perl_Float">1</span>);
+}
+</pre></div></div><br class="example-break" /><div class="para">
+				<a class="xref" href="sect-Defensive_Coding-TLS-Client-NSS.html#ex-Defensive_Coding-TLS-Client-NSS-Close">Example 12.25, “Closing NSS client connections”</a> shows how to close the connection.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-Client-NSS-Close"><h6>Example 12.25. Closing NSS client connections</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Comment">// Send close_notify alert.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Keyword">if</span> (PR_Shutdown(nspr, PR_SHUTDOWN_BOTH) != PR_SUCCESS) {
+  <span class="perl_DataType">const</span> PRErrorCode err = PR_GetError();
+  fprintf(stderr, <span class="perl_String">"error: PR_Read error %d: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    err, PR_ErrorToName(err));
+  exit(<span class="perl_Float">1</span>);
+}
+<span class="perl_Comment">// Closes the underlying POSIX file descriptor, too.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>PR_Close(nspr);
+</pre></div></div><br class="example-break" /></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-TLS-Client-OpenJDK.html"><strong>Prev</strong>12.2.3. Implementing TLS Clients With OpenJDK</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-TLS-Client-Python.html"><strong>Next</strong>12.2.5. Implementing TLS Clients With Python</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-TLS-Client-OpenJDK.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-TLS-Client-OpenJDK.html
new file mode 100644
index 0000000..dbadf3f
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-TLS-Client-OpenJDK.html
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>12.2.3. Implementing TLS Clients With OpenJDK</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="sect-Defensive_Coding-TLS-Client.html" title="12.2. TLS Clients" /><link rel="prev" href="sect-Defensive_Coding-TLS-Client-GNUTLS.html" title="12.2.2. Implementation TLS Clients With GNUTLS" /><link rel="next" href="sect-Defensive_Coding-TLS-Client-NSS.html" title="12.2.4. Implementing TLS Clients With NSS" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive
 _Coding-TLS-Client-GNUTLS.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-TLS-Client-NSS.html"><strong>Next</strong></a></li></ul><div class="section" id="sect-Defensive_Coding-TLS-Client-OpenJDK"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">12.2.3. Implementing TLS Clients With OpenJDK</h3></div></div></div><div class="para">
+				The examples below use the following cryptographic-related classes:
+			</div><div class="informalexample"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Keyword">import</span> java.security.NoSuchAlgorithmException;
+<span class="perl_Keyword">import</span> java.security.NoSuchProviderException;
+<span class="perl_Keyword">import</span> java.security.cert.CertificateEncodingException;
+<span class="perl_Keyword">import</span> java.security.cert.CertificateException;
+<span class="perl_Keyword">import</span> java.security.cert.X509Certificate;
+<span class="perl_Keyword">import</span> javax.net.ssl.SSLContext;
+<span class="perl_Keyword">import</span> javax.net.ssl.SSLParameters;
+<span class="perl_Keyword">import</span> javax.net.ssl.SSLSocket;
+<span class="perl_Keyword">import</span> javax.net.ssl.TrustManager;
+<span class="perl_Keyword">import</span> javax.net.ssl.X509TrustManager;
+
+<span class="perl_Keyword">import sun.security.util.HostnameChecker;</span>
+</pre></div><div class="para">
+				If compatibility with OpenJDK 6 is required, it is necessary to use the internal class <code class="literal">sun.security.util.HostnameChecker</code>. (The public OpenJDK API does not provide any support for dissecting the subject distinguished name of an X.509 certificate, so a custom-written DER parser is needed—or we have to use an internal class, which we do below.) In OpenJDK 7, the <code class="function">setEndpointIdentificationAlgorithm</code> method was added to the <code class="literal">javax.net.ssl.SSLParameters</code> class, providing an official way to implement host name checking.
+			</div><div class="para">
+				TLS connections are established using an <code class="literal">SSLContext</code> instance. With a properly configured OpenJDK installation, the <code class="literal">SunJSSE</code> provider uses the system-wide set of trusted root certificate authorities, so no further configuration is necessary. For backwards compatibility with OpenJDK 6, the <code class="literal">TLSv1</code> provider has to be supported as a fall-back option. This is shown in <a class="xref" href="sect-Defensive_Coding-TLS-Client-OpenJDK.html#ex-Defensive_Coding-TLS-Client-OpenJDK-Context">Example 12.15, “Setting up an <code class="literal">SSLContext</code> for OpenJDK TLS clients”</a>.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-Client-OpenJDK-Context"><h6>Example 12.15. Setting up an <code class="literal">SSLContext</code> for OpenJDK TLS clients</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Comment">// Create the context.  Specify the SunJSSE provider to avoid</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// picking up third-party providers.  Try the TLS 1.2 provider</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// first, then fall back to TLS 1.0.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>SSLContext ctx;
+<span class="perl_Keyword">try</span> {
+    ctx = SSLContext.<span class="perl_Function">getInstance</span>(<span class="perl_String">"TLSv1.2"</span>, <span class="perl_String">"SunJSSE"</span>);
+} <span class="perl_Keyword">catch</span> (NoSuchAlgorithmException e) {
+    <span class="perl_Keyword">try</span> {
+        ctx = SSLContext.<span class="perl_Function">getInstance</span>(<span class="perl_String">"TLSv1"</span>, <span class="perl_String">"SunJSSE"</span>);
+    } <span class="perl_Keyword">catch</span> (NoSuchAlgorithmException e1) {
+        <span class="perl_Comment">// The TLS 1.0 provider should always be available.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>        <span class="perl_Keyword">throw</span> <span class="perl_Keyword">new</span> AssertionError(e1);
+    } <span class="perl_Keyword">catch</span> (NoSuchProviderException e1) {
+        <span class="perl_Keyword">throw</span> <span class="perl_Keyword">new</span> AssertionError(e1);
+    } 
+} <span class="perl_Keyword">catch</span> (NoSuchProviderException e) {
+    <span class="perl_Comment">// The SunJSSE provider should always be available.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>    <span class="perl_Keyword">throw</span> <span class="perl_Keyword">new</span> AssertionError(e);
+}
+ctx.<span class="perl_Function">init</span>(<span class="perl_Keyword">null</span>, <span class="perl_Keyword">null</span>, <span class="perl_Keyword">null</span>);
+</pre></div></div><br class="example-break" /><div class="para">
+				In addition to the context, a TLS parameter object will be needed which adjusts the cipher suites and protocols (<a class="xref" href="sect-Defensive_Coding-TLS-Client-OpenJDK.html#ex-Defensive_Coding-TLS-OpenJDK-Parameters">Example 12.16, “Setting up <code class="literal">SSLParameters</code> for TLS use with OpenJDK”</a>). Like the context, these parameters can be reused for multiple TLS connections.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-OpenJDK-Parameters"><h6>Example 12.16. Setting up <code class="literal">SSLParameters</code> for TLS use with OpenJDK</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Comment">// Prepare TLS parameters.  These have to applied to every TLS</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// socket before the handshake is triggered.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>SSLParameters params = ctx.<span class="perl_Function">getDefaultSSLParameters</span>();
+<span class="perl_Comment">// Do not send an SSL-2.0-compatible Client Hello.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>ArrayList&lt;String&gt; protocols = <span class="perl_Keyword">new</span> ArrayList&lt;String&gt;(
+    Arrays.<span class="perl_Function">asList</span>(params.<span class="perl_Function">getProtocols</span>()));
+protocols.<span class="perl_Function">remove</span>(<span class="perl_String">"SSLv2Hello"</span>);
+params.<span class="perl_Function">setProtocols</span>(protocols.<span class="perl_Function">toArray</span>(<span class="perl_Keyword">new</span> String[protocols.<span class="perl_Function">size</span>()]));
+<span class="perl_Comment">// Adjust the supported ciphers.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>ArrayList&lt;String&gt; ciphers = <span class="perl_Keyword">new</span> ArrayList&lt;String&gt;(
+    Arrays.<span class="perl_Function">asList</span>(params.<span class="perl_Function">getCipherSuites</span>()));
+ciphers.<span class="perl_Function">retainAll</span>(Arrays.<span class="perl_Function">asList</span>(
+    <span class="perl_String">"TLS_RSA_WITH_AES_128_CBC_SHA256"</span>,
+    <span class="perl_String">"TLS_RSA_WITH_AES_256_CBC_SHA256"</span>,
+    <span class="perl_String">"TLS_RSA_WITH_AES_256_CBC_SHA"</span>,
+    <span class="perl_String">"TLS_RSA_WITH_AES_128_CBC_SHA"</span>,
+    <span class="perl_String">"SSL_RSA_WITH_3DES_EDE_CBC_SHA"</span>,
+    <span class="perl_String">"SSL_RSA_WITH_RC4_128_SHA1"</span>,
+    <span class="perl_String">"SSL_RSA_WITH_RC4_128_MD5"</span>,
+    <span class="perl_String">"TLS_EMPTY_RENEGOTIATION_INFO_SCSV"</span>));
+params.<span class="perl_Function">setCipherSuites</span>(ciphers.<span class="perl_Function">toArray</span>(<span class="perl_Keyword">new</span> String[ciphers.<span class="perl_Function">size</span>()]));
+</pre></div></div><br class="example-break" /><div class="para">
+				As initialized above, the parameter object does not yet require host name checking. This has to be enabled separately, and this is only supported by OpenJDK 7 and later:
+			</div><div class="informalexample"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+params.<span class="perl_Function">setEndpointIdentificationAlgorithm</span>(<span class="perl_String">"HTTPS"</span>);
+</pre></div><div class="para">
+				All application protocols can use the <code class="literal">"HTTPS"</code> algorithm. (The algorithms have minor differences with regard to wildcard handling, which should not matter in practice.)
+			</div><div class="para">
+				<a class="xref" href="sect-Defensive_Coding-TLS-Client-OpenJDK.html#ex-Defensive_Coding-TLS-Client-OpenJDK-Connect">Example 12.17, “Establishing a TLS connection with OpenJDK”</a> shows how to establish the connection. Before the handshake is initialized, the protocol and cipher configuration has to be performed, by applying the parameter object <code class="literal">params</code>. (After this point, changes to <code class="literal">params</code> will not affect this TLS socket.) As mentioned initially, host name checking requires using an internal API on OpenJDK 6.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-Client-OpenJDK-Connect"><h6>Example 12.17. Establishing a TLS connection with OpenJDK</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Comment">// Create the socket and connect it at the TCP layer.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>SSLSocket socket = (SSLSocket) ctx.<span class="perl_Function">getSocketFactory</span>()
+    .<span class="perl_Function">createSocket</span>(host, port);
+
+<span class="perl_Comment">// Disable the Nagle algorithm.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>socket.<span class="perl_Function">setTcpNoDelay</span>(<span class="perl_Keyword">true</span>);
+
+<span class="perl_Comment">// Adjust ciphers and protocols.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>socket.<span class="perl_Function">setSSLParameters</span>(params);
+
+<span class="perl_Comment">// Perform the handshake.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>socket.<span class="perl_Function">startHandshake</span>();
+
+<span class="perl_Comment">// Validate the host name.  The match() method throws</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// CertificateException on failure.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>X509Certificate peer = (X509Certificate)
+    socket.<span class="perl_Function">getSession</span>().<span class="perl_Function">getPeerCertificates</span>()[<span class="perl_Float">0</span>];
+<span class="perl_Comment">// This is the only way to perform host name checking on OpenJDK 6.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>HostnameChecker.<span class="perl_Function">getInstance</span>(HostnameChecker.<span class="perl_Function">TYPE_TLS</span>).<span class="perl_Function">match</span>(
+    host, peer);
+</pre></div></div><br class="example-break" /><div class="para">
+				Starting with OpenJDK 7, the last lines can be omitted, provided that host name verification has been enabled by calling the <code class="function">setEndpointIdentificationAlgorithm</code> method on the <code class="literal">params</code> object (before it was applied to the socket).
+			</div><div class="para">
+				The TLS socket can be used as a regular socket, as shown in <a class="xref" href="sect-Defensive_Coding-TLS-Client-OpenJDK.html#ex-Defensive_Coding-TLS-Client-OpenJDK-Use">Example 12.18, “Using a TLS client socket in OpenJDK”</a>.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-Client-OpenJDK-Use"><h6>Example 12.18. Using a TLS client socket in OpenJDK</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+socket.<span class="perl_Function">getOutputStream</span>().<span class="perl_Function">write</span>(<span class="perl_String">"GET / HTTP/1.0</span><span class="perl_Char">\r\n\r\n</span><span class="perl_String">"</span>
+    .<span class="perl_Function">getBytes</span>(Charset.<span class="perl_Function">forName</span>(<span class="perl_String">"UTF-8"</span>)));
+<span class="perl_DataType">byte</span>[] buffer = <span class="perl_Keyword">new</span> <span class="perl_DataType">byte</span>[<span class="perl_Float">4096</span>];
+<span class="perl_DataType">int</span> count = socket.<span class="perl_Function">getInputStream</span>().<span class="perl_Function">read</span>(buffer);
+System.<span class="perl_Function">out</span>.<span class="perl_Function">write</span>(buffer, <span class="perl_Float">0</span>, count);
+</pre></div></div><br class="example-break" /><div class="section" id="idp30682464"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title" id="idp30682464">12.2.3.1. Overriding server certificate validation with OpenJDK 6</h4></div></div></div><div class="para">
+					Overriding certificate validation requires a custom trust manager. With OpenJDK 6, the trust manager lacks information about the TLS session, and to which server the connection is made. Certificate overrides have to be tied to specific servers (host names). Consequently, different <code class="literal">TrustManager</code> and <code class="literal">SSLContext</code> objects have to be used for different servers.
+				</div><div class="para">
+					In the trust manager shown in <a class="xref" href="sect-Defensive_Coding-TLS-Client-OpenJDK.html#ex-Defensive_Coding-TLS-Client-MyTrustManager">Example 12.19, “A customer trust manager for OpenJDK TLS clients”</a>, the server certificate is identified by its SHA-256 hash.
+				</div><div class="example" id="ex-Defensive_Coding-TLS-Client-MyTrustManager"><h6>Example 12.19. A customer trust manager for OpenJDK TLS clients</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Keyword">public</span> <span class="perl_Keyword">class</span> MyTrustManager <span class="perl_Keyword">implements</span> X509TrustManager {
+    <span class="perl_Keyword">private</span> <span class="perl_DataType">final</span> <span class="perl_DataType">byte</span>[] certHash;
+
+    <span class="perl_Keyword">public</span> <span class="perl_Function">MyTrustManager</span>(<span class="perl_DataType">byte</span>[] certHash) <span class="perl_Keyword">throws</span> Exception {
+        <span class="perl_Keyword">this</span>.<span class="perl_Function">certHash</span> = certHash;
+    }
+
+    @Override
+    <span class="perl_Keyword">public</span> <span class="perl_DataType">void</span> <span class="perl_Function">checkClientTrusted</span>(X509Certificate[] chain, String authType)
+            <span class="perl_Keyword">throws</span> CertificateException {
+        <span class="perl_Keyword">throw</span> <span class="perl_Keyword">new</span> UnsupportedOperationException();
+    }
+
+    @Override
+    <span class="perl_Keyword">public</span> <span class="perl_DataType">void</span> <span class="perl_Function">checkServerTrusted</span>(X509Certificate[] chain,
+            String authType) <span class="perl_Keyword">throws</span> CertificateException {
+        <span class="perl_DataType">byte</span>[] digest = <span class="perl_Function">getCertificateDigest</span>(chain[<span class="perl_Float">0</span>]);
+        String digestHex = <span class="perl_Function">formatHex</span>(digest);
+
+        <span class="perl_Keyword">if</span> (Arrays.<span class="perl_Function">equals</span>(digest, certHash)) {
+            System.<span class="perl_Function">err</span>.<span class="perl_Function">println</span>(<span class="perl_String">"info: accepting certificate: "</span> + digestHex);
+        } <span class="perl_Keyword">else</span> {
+            <span class="perl_Keyword">throw</span> <span class="perl_Keyword">new</span> CertificateException(<span class="perl_String">"certificate rejected: "</span>  +
+                    digestHex);
+        }
+    }
+
+    @Override
+    <span class="perl_Keyword">public</span> X509Certificate[] <span class="perl_Function">getAcceptedIssuers</span>() {
+        <span class="perl_Keyword">return</span> <span class="perl_Keyword">new</span> X509Certificate[<span class="perl_Float">0</span>];
+    }
+}
+</pre></div></div><br class="example-break" /><div class="para">
+					This trust manager has to be passed to the <code class="literal">init</code> method of the <code class="literal">SSLContext</code> object, as show in <a class="xref" href="sect-Defensive_Coding-TLS-Client-OpenJDK.html#ex-Defensive_Coding-TLS-Client-Context_For_Cert">Example 12.20, “Using a custom TLS trust manager with OpenJDK”</a>.
+				</div><div class="example" id="ex-Defensive_Coding-TLS-Client-Context_For_Cert"><h6>Example 12.20. Using a custom TLS trust manager with OpenJDK</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+SSLContext ctx;
+<span class="perl_Keyword">try</span> {
+    ctx = SSLContext.<span class="perl_Function">getInstance</span>(<span class="perl_String">"TLSv1.2"</span>, <span class="perl_String">"SunJSSE"</span>);
+} <span class="perl_Keyword">catch</span> (NoSuchAlgorithmException e) {
+    <span class="perl_Keyword">try</span> {
+        ctx = SSLContext.<span class="perl_Function">getInstance</span>(<span class="perl_String">"TLSv1"</span>, <span class="perl_String">"SunJSSE"</span>);
+    } <span class="perl_Keyword">catch</span> (NoSuchAlgorithmException e1) {
+        <span class="perl_Keyword">throw</span> <span class="perl_Keyword">new</span> AssertionError(e1);
+    } <span class="perl_Keyword">catch</span> (NoSuchProviderException e1) {
+        <span class="perl_Keyword">throw</span> <span class="perl_Keyword">new</span> AssertionError(e1);
+    }
+} <span class="perl_Keyword">catch</span> (NoSuchProviderException e) {
+    <span class="perl_Keyword">throw</span> <span class="perl_Keyword">new</span> AssertionError(e);
+}
+MyTrustManager tm = <span class="perl_Keyword">new</span> <span class="perl_Function">MyTrustManager</span>(certHash);
+ctx.<span class="perl_Function">init</span>(<span class="perl_Keyword">null</span>, <span class="perl_Keyword">new</span> TrustManager[] {tm}, <span class="perl_Keyword">null</span>);
+</pre></div></div><br class="example-break" /><div class="para">
+					When certificate overrides are in place, host name verification should not be performed because there is no security requirement that the host name in the certificate matches the host name used to establish the connection (and it often will not). However, without host name verification, it is not possible to perform transparent fallback to certification validation using the system certificate store.
+				</div><div class="para">
+					The approach described above works with OpenJDK 6 and later versions. Starting with OpenJDK 7, it is possible to use a custom subclass of the <code class="literal">javax.net.ssl.X509ExtendedTrustManager</code> class. The OpenJDK TLS implementation will call the new methods, passing along TLS session information. This can be used to implement certificate overrides as a fallback (if certificate or host name verification fails), and a trust manager object can be used for multiple servers because the server address is available to the trust manager.
+				</div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-TLS-Client-GNUTLS.html"><strong>Prev</strong>12.2.2. Implementation TLS Clients With GNUTLS</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-TLS-Client-NSS.html"><strong>Next</strong>12.2.4. Implementing TLS Clients With NSS</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-TLS-Client-Python.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-TLS-Client-Python.html
new file mode 100644
index 0000000..3fd9784
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-TLS-Client-Python.html
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>12.2.5. Implementing TLS Clients With Python</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="sect-Defensive_Coding-TLS-Client.html" title="12.2. TLS Clients" /><link rel="prev" href="sect-Defensive_Coding-TLS-Client-NSS.html" title="12.2.4. Implementing TLS Clients With NSS" /><link rel="next" href="appe-UEFI_Secure_Boot_Guide-Revision_History.html" title="Appendix A. Revision History" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-TLS-
 Client-NSS.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="appe-UEFI_Secure_Boot_Guide-Revision_History.html"><strong>Next</strong></a></li></ul><div class="section" id="sect-Defensive_Coding-TLS-Client-Python"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">12.2.5. Implementing TLS Clients With Python</h3></div></div></div><div class="para">
+				The Python distribution provides a TLS implementation in the <code class="literal">ssl</code> module (actually a wrapper around OpenSSL). The exported interface is somewhat restricted, so that the client code shown below does not fully implement the recommendations in <a class="xref" href="chap-Defensive_Coding-TLS.html#sect-Defensive_Coding-TLS-OpenSSL">Section 12.1.1, “OpenSSL Pitfalls”</a>.
+			</div><div class="important"><div class="admonition_header"><h2>Important</h2></div><div class="admonition"><div class="para">
+					Currently, most Python function which accept <code class="literal">https://</code> URLs or otherwise implement HTTPS support do not perform certificate validation at all. (For example, this is true for the <code class="literal">httplib</code> and <code class="literal">xmlrpclib</code> modules.) If you use HTTPS, you should not use the built-in HTTP clients. The <code class="literal">Curl</code> class in the <code class="literal">curl</code> module, as provided by the <code class="literal">python-pycurl</code> package implements proper certificate validation.
+				</div></div></div><div class="para">
+				The <code class="literal">ssl</code> module currently does not perform host name checking on the server certificate. <a class="xref" href="sect-Defensive_Coding-TLS-Client-Python.html#ex-Defensive_Coding-TLS-Client-Python-check_host_name">Example 12.26, “Implementing TLS host name checking Python (without wildcard support)”</a> shows how to implement certificate matching, using the parsed certificate returned by <code class="function">getpeercert</code>.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-Client-Python-check_host_name"><h6>Example 12.26. Implementing TLS host name checking Python (without wildcard support)</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Keyword">def</span> check_host_name<span class="perl_Char">(peercert</span>, name<span class="perl_Char">):</span>
+    <span class="perl_Comment">"""Simple certificate/host name checker.  Returns True if the</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">    certificate matches, False otherwise.  Does not support</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">    wildcards."""</span>
+    # Check that the peer has supplied a certificate.
+    # <span class="perl_Others">None</span><span class="perl_Char">/{}</span> <span class="perl_Keyword">is</span> <span class="perl_Keyword">not</span> acceptable.
+    <span class="perl_Keyword">if</span> <span class="perl_Keyword">not</span> peercert<span class="perl_Char">:</span>
+        <span class="perl_Keyword">return</span> <span class="perl_Others">False</span>
+    <span class="perl_Keyword">if</span> peercert.has_key<span class="perl_Char">(</span><span class="perl_String">"subjectAltName"</span><span class="perl_Char">):</span>
+        <span class="perl_Keyword">for</span> typ, val <span class="perl_Keyword">in</span> peercert<span class="perl_Char">[</span><span class="perl_String">"subjectAltName"</span><span class="perl_Char">]:</span>
+            <span class="perl_Keyword">if</span> typ <span class="perl_Char">==</span> <span class="perl_String">"DNS"</span> <span class="perl_Keyword">and</span> val <span class="perl_Char">==</span> name<span class="perl_Char">:</span>
+                <span class="perl_Keyword">return</span> <span class="perl_Others">True</span>
+    <span class="perl_Keyword">else</span><span class="perl_Char">:</span>
+        # Only check the subject DN <span class="perl_Keyword">if</span> there <span class="perl_Keyword">is</span> no subject alternative
+        # name.
+        cn <span class="perl_Char">=</span> <span class="perl_Others">None</span>
+        <span class="perl_Keyword">for</span> attr, val <span class="perl_Keyword">in</span> peercert<span class="perl_Char">[</span><span class="perl_String">"subject"</span><span class="perl_Char">]:</span>
+            # Use most<span class="perl_Char">-specific</span> <span class="perl_Char">(last)</span> commonName attribute.
+            <span class="perl_Keyword">if</span> attr <span class="perl_Char">==</span> <span class="perl_String">"commonName"</span><span class="perl_Char">:</span>
+                cn <span class="perl_Char">=</span> val
+        <span class="perl_Keyword">if</span> cn <span class="perl_Keyword">is</span> <span class="perl_Keyword">not</span> <span class="perl_Others">None</span><span class="perl_Char">:</span>
+            <span class="perl_Keyword">return</span> cn <span class="perl_Char">==</span> name
+    <span class="perl_Keyword">return</span> <span class="perl_Others">False</span>
+</pre></div></div><br class="example-break" /><div class="para">
+				To turn a regular, connected TCP socket into a TLS-enabled socket, use the <code class="function">ssl.wrap_socket</code> function. The function call in <a class="xref" href="sect-Defensive_Coding-TLS-Client-Python.html#ex-Defensive_Coding-TLS-Client-Python-Connect">Example 12.27, “Establishing a TLS client connection with Python”</a> provides additional arguments to override questionable defaults in OpenSSL and in the Python module.
+			</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+						<code class="literal">ciphers="HIGH:-aNULL:-eNULL:-PSK:RC4-SHA:RC4-MD5"</code> selects relatively strong cipher suites with certificate-based authentication. (The call to <code class="function">check_host_name</code> function provides additional protection against anonymous cipher suites.)
+					</div></li><li class="listitem"><div class="para">
+						<code class="literal">ssl_version=ssl.PROTOCOL_TLSv1</code> disables SSL 2.0 support. By default, the <code class="literal">ssl</code> module sends an SSL 2.0 client hello, which is rejected by some servers. Ideally, we would request OpenSSL to negotiated the most recent TLS version supported by the server and the client, but the Python module does not allow this.
+					</div></li><li class="listitem"><div class="para">
+						<code class="literal">cert_reqs=ssl.CERT_REQUIRED</code> turns on certificate validation.
+					</div></li><li class="listitem"><div class="para">
+						<code class="literal">ca_certs='/etc/ssl/certs/ca-bundle.crt'</code> initializes the certificate store with a set of trusted root CAs. Unfortunately, it is necessary to hard-code this path into applications because the default path in OpenSSL is not available through the Python <code class="literal">ssl</code> module.
+					</div></li></ul></div><div class="para">
+				The <code class="literal">ssl</code> module (and OpenSSL) perform certificate validation, but the certificate must be compared manually against the host name, by calling the <code class="function">check_host_name</code> defined above.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-Client-Python-Connect"><h6>Example 12.27. Establishing a TLS client connection with Python</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+sock <span class="perl_Char">=</span> ssl.wrap_socket<span class="perl_Char">(sock</span>,
+                       ciphers<span class="perl_Char">=</span><span class="perl_String">"HIGH:-aNULL:-eNULL:-PSK:RC4-SHA:RC4-MD5"</span>,
+                       ssl_version<span class="perl_Char">=ssl</span>.PROTOCOL_TLSv1,
+                       cert_reqs<span class="perl_Char">=ssl</span>.CERT_REQUIRED,
+                       ca_certs<span class="perl_Char">=</span><span class="perl_String">'/etc/ssl/certs/ca-bundle.crt'</span><span class="perl_Char">)</span>
+# getpeercert<span class="perl_Char">()</span> triggers the handshake <span class="perl_Char">as</span> a side effect.
+<span class="perl_Keyword">if</span> <span class="perl_Keyword">not</span> check_host_name<span class="perl_Char">(sock</span>.getpeercert<span class="perl_Char">()</span>, host<span class="perl_Char">):</span>
+    <span class="perl_Keyword">raise</span> IOError<span class="perl_Char">(</span><span class="perl_String">"peer certificate does not match host name"</span><span class="perl_Char">)</span>
+</pre></div></div><br class="example-break" /><div class="para">
+				After the connection has been established, the TLS socket can be used like a regular socket:
+			</div><div class="informalexample"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+sock.write<span class="perl_Char">(</span><span class="perl_String">"GET / HTTP/1.1\r\nHost: "</span> <span class="perl_Char">+</span> host <span class="perl_Char">+</span> <span class="perl_String">"\r\n\r\n"</span><span class="perl_Char">)</span>
+<span class="perl_Keyword">print</span> sock.read<span class="perl_Char">()</span>
+</pre></div><div class="para">
+				Closing the TLS socket is straightforward as well:
+			</div><div class="informalexample"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+sock.close<span class="perl_Char">()</span>
+</pre></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-TLS-Client-NSS.html"><strong>Prev</strong>12.2.4. Implementing TLS Clients With NSS</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="appe-UEFI_Secure_Boot_Guide-Revision_History.html"><strong>Next</strong>Appendix A. Revision History</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-TLS-Client.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-TLS-Client.html
new file mode 100644
index 0000000..b0e6f6a
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-TLS-Client.html
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>12.2. TLS Clients</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="chap-Defensive_Coding-TLS.html" title="Chapter 12. Transport Layer Security" /><link rel="prev" href="chap-Defensive_Coding-TLS.html" title="Chapter 12. Transport Layer Security" /><link rel="next" href="sect-Defensive_Coding-TLS-Client-GNUTLS.html" title="12.2.2. Implementation TLS Clients With GNUTLS" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="chap-Defensive_C
 oding-TLS.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-TLS-Client-GNUTLS.html"><strong>Next</strong></a></li></ul><div class="section" id="sect-Defensive_Coding-TLS-Client"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">12.2. TLS Clients</h2></div></div></div><div class="para">
+			Secure use of TLS in a client generally involves all of the following steps. (Individual instructions for specific TLS implementations follow in the next sections.)
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					The client must configure the TLS library to use a set of trusted root certificates. These certificates are provided by the system in <code class="filename">/etc/ssl/certs</code> or files derived from it.
+				</div></li><li class="listitem"><div class="para">
+					The client selects sufficiently strong cryptographic primitives and disables insecure ones (such as no-op encryption). Compression and SSL version 2 support must be disabled (including the SSLv2-compatible handshake).
+				</div></li><li class="listitem"><div class="para">
+					The client initiates the TLS connection. The Server Name Indication extension should be used if supported by the TLS implementation. Before switching to the encrypted connection state, the contents of all input and output buffers must be discarded.
+				</div></li><li class="listitem"><div class="para">
+					The client needs to validate the peer certificate provided by the server, that is, the client must check that there is a cryptographically protected chain from a trusted root certificate to the peer certificate. (Depending on the TLS implementation, a TLS handshake can succeed even if the certificate cannot be validated.)
+				</div></li><li class="listitem"><div class="para">
+					The client must check that the configured or user-provided server name matches the peer certificate provided by the server.
+				</div></li></ul></div><div class="para">
+			It is safe to provide users detailed diagnostics on certificate validation failures. Other causes of handshake failures and, generally speaking, any details on other errors reported by the TLS implementation (particularly exception tracebacks), must not be divulged in ways that make them accessible to potential attackers. Otherwise, it is possible to create decryption oracles.
+		</div><div class="important"><div class="admonition_header"><h2>Important</h2></div><div class="admonition"><div class="para">
+				Depending on the application, revocation checking (against certificate revocations lists or via OCSP) and session resumption are important aspects of production-quality client. These aspects are not yet covered.
+			</div></div></div><div class="section" id="idp16548832"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idp16548832">12.2.1. Implementation TLS Clients With OpenSSL</h3></div></div></div><div class="para">
+				In the following code, the error handling is only exploratory. Proper error handling is required for production use, especially in libraries. 
+			</div><div class="para">
+				The OpenSSL library needs explicit initialization (see <a class="xref" href="sect-Defensive_Coding-TLS-Client.html#ex-Defensive_Coding-TLS-OpenSSL-Init">Example 12.3, “OpenSSL library initialization”</a>).
+			</div><div class="example" id="ex-Defensive_Coding-TLS-OpenSSL-Init"><h6>Example 12.3. OpenSSL library initialization</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Comment">// The following call prints an error message and calls exit() if</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// the OpenSSL configuration file is unreadable.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>OPENSSL_config(NULL);
+<span class="perl_Comment">// Provide human-readable error messages.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>SSL_load_error_strings();
+<span class="perl_Comment">// Register ciphers.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>SSL_library_init();
+</pre></div></div><br class="example-break" /><div class="para">
+				After that, a context object has to be created, which acts as a factory for connection objects (<a class="xref" href="sect-Defensive_Coding-TLS-Client.html#ex-Defensive_Coding-TLS-Client-OpenSSL-CTX">Example 12.4, “OpenSSL client context creation”</a>). We use an explicit cipher list so that we do not pick up any strange ciphers when OpenSSL is upgraded. The actual version requested in the client hello depends on additional restrictions in the OpenSSL library. If possible, you should follow the example code and use the default list of trusted root certificate authorities provided by the system because you would have to maintain your own set otherwise, which can be cumbersome.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-Client-OpenSSL-CTX"><h6>Example 12.4. OpenSSL client context creation</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Comment">// Configure a client connection context.  Send a hendshake for the</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// highest supported TLS version, and disable compression.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_DataType">const</span> SSL_METHOD *<span class="perl_DataType">const</span> req_method = SSLv23_client_method();
+SSL_CTX *<span class="perl_DataType">const</span> ctx = SSL_CTX_new(req_method);
+<span class="perl_Keyword">if</span> (ctx == NULL) {
+  ERR_print_errors(bio_err);
+  exit(<span class="perl_Float">1</span>);
+}
+SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv2 | SSL_OP_NO_COMPRESSION);
+
+<span class="perl_Comment">// Adjust the ciphers list based on a whitelist.  First enable all</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// ciphers of at least medium strength, to get the list which is</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// compiled into OpenSSL.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Keyword">if</span> (SSL_CTX_set_cipher_list(ctx, <span class="perl_String">"HIGH:MEDIUM"</span>) != <span class="perl_Float">1</span>) {
+  ERR_print_errors(bio_err);
+  exit(<span class="perl_Float">1</span>);
+}
+{
+  <span class="perl_Comment">// Create a dummy SSL session to obtain the cipher list.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>  SSL *ssl = SSL_new(ctx);
+  <span class="perl_Keyword">if</span> (ssl == NULL) {
+    ERR_print_errors(bio_err);
+    exit(<span class="perl_Float">1</span>);
+  }
+  STACK_OF(SSL_CIPHER) *active_ciphers = SSL_get_ciphers(ssl);
+  <span class="perl_Keyword">if</span> (active_ciphers == NULL) {
+    ERR_print_errors(bio_err);
+    exit(<span class="perl_Float">1</span>);
+  }
+  <span class="perl_Comment">// Whitelist of candidate ciphers.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>  <span class="perl_DataType">static</span> <span class="perl_DataType">const</span> <span class="perl_DataType">char</span> *<span class="perl_DataType">const</span> candidates[] =  {
+    <span class="perl_String">"AES128-GCM-SHA256"</span>, <span class="perl_String">"AES128-SHA256"</span>, <span class="perl_String">"AES256-SHA256"</span>, <span class="perl_Comment">// strong ciphers</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>    <span class="perl_String">"AES128-SHA"</span>, <span class="perl_String">"AES256-SHA"</span>, <span class="perl_Comment">// strong ciphers, also in older versions</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>    <span class="perl_String">"RC4-SHA"</span>, <span class="perl_String">"RC4-MD5"</span>, <span class="perl_Comment">// backwards compatibility, supposed to be weak</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>    <span class="perl_String">"DES-CBC3-SHA"</span>, <span class="perl_String">"DES-CBC3-MD5"</span>, <span class="perl_Comment">// more backwards compatibility</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>    NULL
+  };
+  <span class="perl_Comment">// Actually selected ciphers.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>  <span class="perl_DataType">char</span> ciphers[<span class="perl_Float">300</span>];
+  ciphers[0] = '\0';
+  <span class="perl_Keyword">for</span> (<span class="perl_DataType">const</span> <span class="perl_DataType">char</span> *<span class="perl_DataType">const</span> *c = candidates; *c; ++c) {
+    <span class="perl_Keyword">for</span> (<span class="perl_DataType">int</span> i = 0; i &lt; sk_SSL_CIPHER_num(active_ciphers); ++i) {
+	<span class="perl_Keyword">if</span> (strcmp(SSL_CIPHER_get_name(sk_SSL_CIPHER_value(active_ciphers, i)),
+		   *c) == 0) {
+	  <span class="perl_Keyword">if</span> (*ciphers) {
+	    strcat(ciphers, <span class="perl_String">":"</span>);
+	  }
+	  strcat(ciphers, *c);
+	  <span class="perl_Keyword">break</span>;
+	}
+    }
+  }
+  SSL_free(ssl);
+  <span class="perl_Comment">// Apply final cipher list.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>  <span class="perl_Keyword">if</span> (SSL_CTX_set_cipher_list(ctx, ciphers) != <span class="perl_Float">1</span>) {
+    ERR_print_errors(bio_err);
+    exit(<span class="perl_Float">1</span>);
+  }
+}
+
+<span class="perl_Comment">// Load the set of trusted root certificates.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Keyword">if</span> (!SSL_CTX_set_default_verify_paths(ctx)) {
+  ERR_print_errors(bio_err);
+  exit(<span class="perl_Float">1</span>);
+}
+</pre></div></div><br class="example-break" /><div class="para">
+				A single context object can be used to create multiple connection objects. It is safe to use the same <code class="literal">SSL_CTX</code> object for creating connections concurrently from multiple threads, provided that the <code class="literal">SSL_CTX</code> object is not modified (e.g., callbacks must not be changed).
+			</div><div class="para">
+				After creating the TCP socket and disabling the Nagle algorithm (per <a class="xref" href="chap-Defensive_Coding-TLS.html#ex-Defensive_Coding-TLS-Nagle">Example 12.1, “Deactivating the TCP Nagle algorithm”</a>), the actual connection object needs to be created, as show in <a class="xref" href="sect-Defensive_Coding-TLS-Client.html#ex-Defensive_Coding-TLS-Client-OpenSSL-CTX">Example 12.4, “OpenSSL client context creation”</a>. If the handshake started by <code class="function">SSL_connect</code> fails, the <code class="function">ssl_print_error_and_exit</code> function from <a class="xref" href="chap-Defensive_Coding-TLS.html#ex-Defensive_Coding-TLS-OpenSSL-Errors">Example 12.2, “Obtaining OpenSSL error codes”</a> is called.
+			</div><div class="para">
+				The <code class="function">certificate_validity_override</code> function provides an opportunity to override the validity of the certificate in case the OpenSSL check fails. If such functionality is not required, the call can be removed, otherwise, the application developer has to implement it.
+			</div><div class="para">
+				The host name passed to the functions <code class="function">SSL_set_tlsext_host_name</code> and <code class="function">X509_check_host</code> must be the name that was passed to <code class="function">getaddrinfo</code> or a similar name resolution function. No host name canonicalization must be performed. The <code class="function">X509_check_host</code> function used in the final step for host name matching is currently only implemented in OpenSSL 1.1, which is not released yet. In case host name matching fails, the function <code class="function">certificate_host_name_override</code> is called. This function should check user-specific certificate store, to allow a connection even if the host name does not match the certificate. This function has to be provided by the application developer. Note that the override must be keyed by both the certificate <span class="emphasis"><em>and</em></span> the host name.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-Client-OpenSSL-Connect"><h6>Example 12.5. Creating a client connection using OpenSSL</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Comment">// Create the connection object.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>SSL *ssl = SSL_new(ctx);
+<span class="perl_Keyword">if</span> (ssl == NULL) {
+  ERR_print_errors(bio_err);
+  exit(<span class="perl_Float">1</span>);
+}
+SSL_set_fd(ssl, sockfd);
+
+<span class="perl_Comment">// Enable the ServerNameIndication extension</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Keyword">if</span> (!SSL_set_tlsext_host_name(ssl, host)) {
+  ERR_print_errors(bio_err);
+  exit(<span class="perl_Float">1</span>);
+}
+
+<span class="perl_Comment">// Perform the TLS handshake with the server.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>ret = SSL_connect(ssl);
+<span class="perl_Keyword">if</span> (ret != <span class="perl_Float">1</span>) {
+  <span class="perl_Comment">// Error status can be 0 or negative.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>  ssl_print_error_and_exit(ssl, <span class="perl_String">"SSL_connect"</span>, ret);
+}
+
+<span class="perl_Comment">// Obtain the server certificate.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>X509 *peercert = SSL_get_peer_certificate(ssl);
+<span class="perl_Keyword">if</span> (peercert == NULL) {
+  fprintf(stderr, <span class="perl_String">"peer certificate missing"</span>);
+  exit(<span class="perl_Float">1</span>);
+}
+
+<span class="perl_Comment">// Check the certificate verification result.  Allow an explicit</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// certificate validation override in case verification fails.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_DataType">int</span> verifystatus = SSL_get_verify_result(ssl);
+<span class="perl_Keyword">if</span> (verifystatus != X509_V_OK &amp;&amp; !certificate_validity_override(peercert)) {
+  fprintf(stderr, <span class="perl_String">"SSL_connect: verify result: %s</span><span class="perl_Char">\n</span><span class="perl_String">"</span>,
+	    X509_verify_cert_error_string(verifystatus));
+  exit(<span class="perl_Float">1</span>);
+}
+
+<span class="perl_Comment">// Check if the server certificate matches the host name used to</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// establish the connection.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// </span><span class="perl_Alert">FIXME</span><span class="perl_Comment">: Currently needs OpenSSL 1.1.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Keyword">if</span> (X509_check_host(peercert, (<span class="perl_DataType">const</span> <span class="perl_DataType">unsigned</span> <span class="perl_DataType">char</span> *)host, strlen(host),
+		      0) != <span class="perl_Float">1</span>
+    &amp;&amp; !certificate_host_name_override(peercert, host)) {
+  fprintf(stderr, <span class="perl_String">"SSL certificate does not match host name</span><span class="perl_Char">\n</span><span class="perl_String">"</span>);
+  exit(<span class="perl_Float">1</span>);
+}
+
+X509_free(peercert);
+
+</pre></div></div><br class="example-break" /><div class="para">
+				The connection object can be used for sending and receiving data, as in <a class="xref" href="sect-Defensive_Coding-TLS-Client.html#ex-Defensive_Coding-TLS-OpenSSL-Connection-Use">Example 12.6, “Using an OpenSSL connection to send and receive data”</a>. It is also possible to create a <code class="literal">BIO</code> object and use the <code class="literal">SSL</code> object as the underlying transport, using <code class="function">BIO_set_ssl</code>.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-OpenSSL-Connection-Use"><h6>Example 12.6. Using an OpenSSL connection to send and receive data</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_DataType">const</span> <span class="perl_DataType">char</span> *<span class="perl_DataType">const</span> req = <span class="perl_String">"GET / HTTP/1.0</span><span class="perl_Char">\r\n\r\n</span><span class="perl_String">"</span>;
+<span class="perl_Keyword">if</span> (SSL_write(ssl, req, strlen(req)) &lt; 0) {
+  ssl_print_error_and_exit(ssl, <span class="perl_String">"SSL_write"</span>, ret);
+}
+<span class="perl_DataType">char</span> buf[4096];
+ret = SSL_read(ssl, buf, <span class="perl_Keyword">sizeof</span>(buf));
+<span class="perl_Keyword">if</span> (ret &lt; 0) {
+  ssl_print_error_and_exit(ssl, <span class="perl_String">"SSL_read"</span>, ret);
+}
+</pre></div></div><br class="example-break" /><div class="para">
+				When it is time to close the connection, the <code class="function">SSL_shutdown</code> function needs to be called twice for an orderly, synchronous connection termination (<a class="xref" href="sect-Defensive_Coding-TLS-Client.html#ex-Defensive_Coding-TLS-OpenSSL-Connection-Close">Example 12.7, “Closing an OpenSSL connection in an orderly fashion”</a>). This exchanges <code class="literal">close_notify</code> alerts with the server. The additional logic is required to deal with an unexpected <code class="literal">close_notify</code> from the server. Note that is necessary to explicitly close the underlying socket after the connection object has been freed.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-OpenSSL-Connection-Close"><h6>Example 12.7. Closing an OpenSSL connection in an orderly fashion</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Comment">// Send the close_notify alert.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>ret = SSL_shutdown(ssl);
+<span class="perl_Keyword">switch</span> (ret) {
+<span class="perl_Keyword">case</span> <span class="perl_Float">1</span>:
+  <span class="perl_Comment">// A close_notify alert has already been received.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>  <span class="perl_Keyword">break</span>;
+<span class="perl_Keyword">case</span> 0:
+  <span class="perl_Comment">// Wait for the close_notify alert from the peer.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>  ret = SSL_shutdown(ssl);
+  <span class="perl_Keyword">switch</span> (ret) {
+  <span class="perl_Keyword">case</span> 0:
+    fprintf(stderr, <span class="perl_String">"info: second SSL_shutdown returned zero</span><span class="perl_Char">\n</span><span class="perl_String">"</span>);
+    <span class="perl_Keyword">break</span>;
+  <span class="perl_Keyword">case</span> <span class="perl_Float">1</span>:
+    <span class="perl_Keyword">break</span>;
+  <span class="perl_Keyword">default</span>:
+    ssl_print_error_and_exit(ssl, <span class="perl_String">"SSL_shutdown 2"</span>, ret);
+  }
+  <span class="perl_Keyword">break</span>;
+<span class="perl_Keyword">default</span>:
+  ssl_print_error_and_exit(ssl, <span class="perl_String">"SSL_shutdown 1"</span>, ret);
+}
+SSL_free(ssl);
+close(sockfd);
+</pre></div></div><br class="example-break" /><div class="para">
+				<a class="xref" href="sect-Defensive_Coding-TLS-Client.html#ex-Defensive_Coding-TLS-OpenSSL-Context-Close">Example 12.8, “Closing an OpenSSL connection in an orderly fashion”</a> shows how to deallocate the context object when it is no longer needed because no further TLS connections will be established.
+			</div><div class="example" id="ex-Defensive_Coding-TLS-OpenSSL-Context-Close"><h6>Example 12.8. Closing an OpenSSL connection in an orderly fashion</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+SSL_CTX_free(ctx);
+</pre></div></div><br class="example-break" /></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="chap-Defensive_Coding-TLS.html"><strong>Prev</strong>Chapter 12. Transport Layer Security</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-TLS-Client-GNUTLS.html"><strong>Next</strong>12.2.2. Implementation TLS Clients With GNUTLS</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Descriptors-Child_Processes.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Descriptors-Child_Processes.html
new file mode 100644
index 0000000..d333520
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Descriptors-Child_Processes.html
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>5.2. Preventing file descriptor leaks to child processes</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="sect-Defensive_Coding-Tasks-Descriptors.html" title="Chapter 5. File Descriptor Management" /><link rel="prev" href="sect-Defensive_Coding-Tasks-Descriptors.html" title="Chapter 5. File Descriptor Management" /><link rel="next" href="sect-Defensive_Coding-Tasks-Descriptors-Limit.html" title="5.3. Dealing with the select limit" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p
 " href="sect-Defensive_Coding-Tasks-Descriptors.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-Descriptors-Limit.html"><strong>Next</strong></a></li></ul><div class="section" id="sect-Defensive_Coding-Tasks-Descriptors-Child_Processes"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">5.2. Preventing file descriptor leaks to child processes</h2></div></div></div><div class="para">
+			Child processes created with <code class="function">fork</code> share the initial set of file descriptors with their parent process. By default, file descriptors are also preserved if a new process image is created with <code class="function">execve</code> (or any of the other functions such as <code class="function">system</code> or <code class="function">posix_spawn</code>).
+		</div><div class="para">
+			Usually, this behavior is not desirable. There are two ways to turn it off, that is, to prevent new process images from inheriting the file descriptors in the parent process:
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					Set the close-on-exec flag on all newly created file descriptors. Traditionally, this flag is controlled by the <code class="literal">FD_CLOEXEC</code> flag, using <code class="literal">F_GETFD</code> and <code class="literal">F_SETFD</code> operations of the <code class="function">fcntl</code> function.
+				</div><div class="para">
+					However, in a multi-threaded process, there is a race condition: a subprocess could have been created between the time the descriptor was created and the <code class="literal">FD_CLOEXEC</code> was set. Therefore, many system calls which create descriptors (such as <code class="function">open</code> and <code class="function">openat</code>) now accept the <code class="function">O_CLOEXEC</code> flag (<code class="function">SOCK_CLOEXEC</code> for <code class="function">socket</code> and <code class="function">socketpair</code>), which cause the <code class="literal">FD_CLOEXEC</code> flag to be set for the file descriptor in an atomic fashion. In addition, a few new systems calls were introduced, such as <code class="function">pipe2</code> and <code class="function">dup3</code>.
+				</div><div class="para">
+					The downside of this approach is that every descriptor needs to receive special treatment at the time of creation, otherwise it is not completely effective.
+				</div></li><li class="listitem"><div class="para">
+					After calling <code class="function">fork</code>, but before creating a new process image with <code class="function">execve</code>, all file descriptors which the child process will not need are closed.
+				</div><div class="para">
+					Traditionally, this was implemented as a loop over file descriptors ranging from <code class="literal">3</code> to <code class="literal">255</code> and later <code class="literal">1023</code>. But this is only an approximatio because it is possible to create file descriptors outside this range easily (see <a class="xref" href="sect-Defensive_Coding-Tasks-Descriptors-Limit.html">Section 5.3, “Dealing with the <code class="function">select</code> limit”</a>). Another approach reads <code class="filename">/proc/self/fd</code> and closes the unexpected descriptors listed there, but this approach is much slower.
+				</div></li></ul></div><div class="para">
+			At present, environments which care about file descriptor leakage implement the second approach. OpenJDK 6 and 7 are among them.
+		</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-Tasks-Descriptors.html"><strong>Prev</strong>Chapter 5. File Descriptor Management</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-Descriptors-Limit.html"><strong>Next</strong>5.3. Dealing with the select limit</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Descriptors-Limit.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Descriptors-Limit.html
new file mode 100644
index 0000000..af9d51b
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Descriptors-Limit.html
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>5.3. Dealing with the select limit</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="sect-Defensive_Coding-Tasks-Descriptors.html" title="Chapter 5. File Descriptor Management" /><link rel="prev" href="sect-Defensive_Coding-Tasks-Descriptors-Child_Processes.html" title="5.2. Preventing file descriptor leaks to child processes" /><link rel="next" href="chap-Defensive_Coding-Tasks-File_System.html" title="Chapter 6. File system manipulation" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li cl
 ass="previous"><a accesskey="p" href="sect-Defensive_Coding-Tasks-Descriptors-Child_Processes.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="chap-Defensive_Coding-Tasks-File_System.html"><strong>Next</strong></a></li></ul><div class="section" id="sect-Defensive_Coding-Tasks-Descriptors-Limit"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">5.3. Dealing with the <code class="function">select</code> limit</h2></div></div></div><div class="para">
+			By default, a user is allowed to open only 1024 files in a single process, but the system administrator can easily change this limit (which is necessary for busy network servers). However, there is another restriction which is more difficult to overcome.
+		</div><div class="para">
+			The <code class="function">select</code> function only supports a maximum of <code class="literal">FD_SETSIZE</code> file descriptors (that is, the maximum permitted value for a file descriptor is <code class="literal">FD_SETSIZE - 1</code>, usually 1023.) If a process opens many files, descriptors may exceed such limits. It is impossible to query such descriptors using <code class="function">select</code>.
+		</div><div class="para">
+			If a library which creates many file descriptors is used in the same process as a library which uses <code class="function">select</code>, at least one of them needs to be changed.  Calls to <code class="function">select</code> can be replaced with calls to <code class="function">poll</code> or another event handling mechanism.
+		</div><div class="para">
+			Alternatively, the library with high descriptor usage can relocate descriptors above the <code class="literal">FD_SETSIZE</code> limit using the following procedure.
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					Create the file descriptor <code class="literal">fd</code> as usual, preferably with the <code class="literal">O_CLOEXEC</code> flag.
+				</div></li><li class="listitem"><div class="para">
+					Before doing anything else with the descriptor <code class="literal">fd</code>, invoke:
+				</div><pre class="programlisting">
+	  <span class="perl_DataType">int</span> newfd = fcntl(fd, F_DUPFD_CLOEXEC, (<span class="perl_DataType">long</span>)FD_SETSIZE);
+</pre></li><li class="listitem"><div class="para">
+					Check that <code class="literal">newfd</code> result is non-negative, otherwise close <code class="literal">fd</code> and report an error, and return.
+				</div></li><li class="listitem"><div class="para">
+					Close <code class="literal">fd</code> and continue to use <code class="literal">newfd</code>.
+				</div></li></ul></div><div class="para">
+			The new descriptor has been allocated above the <code class="literal">FD_SETSIZE</code>. Even though this algorithm is racy in the sense that the <code class="literal">FD_SETSIZE</code> first descriptors could fill up, a very high degree of physical parallelism is required before this becomes a problem.
+		</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-Tasks-Descriptors-Child_Processes.html"><strong>Prev</strong>5.2. Preventing file descriptor leaks to child pr...</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="chap-Defensive_Coding-Tasks-File_System.html"><strong>Next</strong>Chapter 6. File system manipulation</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Descriptors.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Descriptors.html
new file mode 100644
index 0000000..0b65131
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Descriptors.html
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 5. File Descriptor Management</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="pt02.html" title="Part II. Specific Programming Tasks" /><link rel="prev" href="ch04s04.html" title="4.4. Process attributes" /><link rel="next" href="sect-Defensive_Coding-Tasks-Descriptors-Child_Processes.html" title="5.2. Preventing file descriptor leaks to child processes" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="ch04s04.html"><strong>Prev</strong></a></li>
 <li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-Descriptors-Child_Processes.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="chapter" id="sect-Defensive_Coding-Tasks-Descriptors" lang="en-US"><div class="titlepage"><div><div><h2 class="title">Chapter 5. File Descriptor Management</h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Descriptors.html#idp13594256">5.1. Closing descriptors</a></span></dt><dd><dl><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Descriptors.html#idp21950720">5.1.1. Error handling during descriptor close</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Descriptors.html#idp21700096">5.1.2. Closing descriptors and race conditions</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Descriptors.html#idp21795232">5.1.3. Lingering state after close</a></span></dt></dl></dd><dt><span class="se
 ction"><a href="sect-Defensive_Coding-Tasks-Descriptors-Child_Processes.html">5.2. Preventing file descriptor leaks to child processes</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Descriptors-Limit.html">5.3. Dealing with the <code class="function">select</code> limit</a></span></dt></dl></div><div class="para">
+		File descriptors underlie all input/output mechanisms offered by the system. They are used to implementation the <code class="literal">FILE *</code>-based functions found in <code class="literal">&lt;stdio.h&gt;</code>, and all the file and network communication facilities provided by the Python and Java environments are eventually implemented in them.
+	</div><div class="para">
+		File descriptors are small, non-negative integers in userspace, and are backed on the kernel side with complicated data structures which can sometimes grow very large.
+	</div><div class="section" id="idp13594256"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title" id="idp13594256">5.1. Closing descriptors</h2></div></div></div><div class="para">
+			If a descriptor is no longer used by a program and is not closed explicitly, its number cannot be reused (which is problematic in itself, see <a class="xref" href="sect-Defensive_Coding-Tasks-Descriptors-Limit.html">Section 5.3, “Dealing with the <code class="function">select</code> limit”</a>), and the kernel resources are not freed. Therefore, it is important to close all descriptors at the earlierst point in time possible, but not earlier.
+		</div><div class="section" id="idp21950720"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idp21950720">5.1.1. Error handling during descriptor close</h3></div></div></div><div class="para">
+				The <code class="function">close</code> system call is always successful in the sense that the passed file descriptor is never valid after the function has been called. However, <code class="function">close</code> still can return an error, for example if there was a file system failure. But this error is not very useful because the absence of an error does not mean that all caches have been emptied and previous writes have been made durable. Programs which need such guarantees must open files with <code class="literal">O_SYNC</code> or use <code class="literal">fsync</code> or <code class="literal">fdatasync</code>, and may also have to <code class="literal">fsync</code> the directory containing the file.
+			</div></div><div class="section" id="idp21700096"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idp21700096">5.1.2. Closing descriptors and race conditions</h3></div></div></div><div class="para">
+				Unlike process IDs, which are recycle only gradually, the kernel always allocates the lowest unused file descriptor when a new descriptor is created. This means that in a multi-threaded program which constantly opens and closes file descriptors, descriptors are reused very quickly. Unless descriptor closing and other operations on the same file descriptor are synchronized (typically, using a mutex), there will be race coniditons and I/O operations will be applied to the wrong file descriptor.
+			</div><div class="para">
+				Sometimes, it is necessary to close a file descriptor concurrently, while another thread might be about to use it in a system call. In order to support this, a program needs to create a single special file descriptor, one on which all I/O operations fail. One way to achieve this is to use <code class="function">socketpair</code>, close one of the descriptors, and call <code class="literal">shutdown(fd, SHUTRDWR)</code> on the other.
+			</div><div class="para">
+				When a descriptor is closed concurrently, the program does not call <code class="function">close</code> on the descriptor. Instead it program uses <code class="function">dup2</code> to replace the descriptor to be closed with the dummy descriptor created earlier. This way, the kernel will not reuse the descriptor, but it will carry out all other steps associated with calling a descriptor (for instance, if the descriptor refers to a stream socket, the peer will be notified).
+			</div><div class="para">
+				This is just a sketch, and many details are missing. Additional data structures are needed to determine when it is safe to really close the descriptor, and proper locking is required for that.
+			</div></div><div class="section" id="idp21795232"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idp21795232">5.1.3. Lingering state after close</h3></div></div></div><div class="para">
+				By default, closing a stream socket returns immediately, and the kernel will try to send the data in the background. This means that it is impossible to implement accurate accounting of network-related resource utilization from userspace.
+			</div><div class="para">
+				The <code class="literal">SO_LINGER</code> socket option alters the behavior of <code class="function">close</code>, so that it will return only after the lingering data has been processed, either by sending it to the peer successfully, or by discarding it after the configured timeout. However, there is no interface which could perform this operation in the background, so a separate userspace thread is needed for each <code class="function">close</code> call, causing scalability issues.
+			</div><div class="para">
+				Currently, there is no application-level countermeasure which applies universally. Mitigation is possible with <span class="application"><strong>iptables</strong></span> (the <code class="literal">connlimit</code> match type in particular) and specialized filtering devices for denial-of-service network traffic.
+			</div><div class="para">
+				These problems are not related to the <code class="literal">TIME_WAIT</code> state commonly seen in <span class="application"><strong>netstat</strong></span> output. The kernel automatically expires such sockets if necessary.
+			</div></div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="ch04s04.html"><strong>Prev</strong>4.4. Process attributes</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-Descriptors-Child_Processes.html"><strong>Next</strong>5.2. Preventing file descriptor leaks to child pr...</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-File_System-Features.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-File_System-Features.html
new file mode 100644
index 0000000..f1bcd02
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-File_System-Features.html
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>6.4. File system features</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="chap-Defensive_Coding-Tasks-File_System.html" title="Chapter 6. File system manipulation" /><link rel="prev" href="sect-Defensive_Coding-Tasks-File_System-Limits.html" title="6.3. File system limits" /><link rel="next" href="sect-Defensive_Coding-Tasks-File_System-Free_Space.html" title="6.5. Checking free space" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-De
 fensive_Coding-Tasks-File_System-Limits.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-File_System-Free_Space.html"><strong>Next</strong></a></li></ul><div class="section" id="sect-Defensive_Coding-Tasks-File_System-Features"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">6.4. File system features</h2></div></div></div><div class="para">
+			Not all file systems support all features. This makes it very difficult to write general-purpose tools for copying files. For example, a copy operation intending to preserve file permissions will generally fail when copying to a FAT file system.
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					Some file systems are case-insensitive. Most should be case-preserving, though.
+				</div></li><li class="listitem"><div class="para">
+					Name length limits vary greatly, from eight to thousands of bytes. Path length limits differ as well. Most systems impose an upper bound on path names passed to the kernel, but using relative path names, it is possible to create and access files whose absolute path name is essentially of unbounded length.
+				</div></li><li class="listitem"><div class="para">
+					Some file systems do not store names as fairly unrestricted byte sequences, as it has been traditionally the case on GNU systems. This means that some byte sequences (outside the POSIX safe character set) are not valid names. Conversely, names of existing files may not be representable as byte sequences, and the files are thus inaccessible on GNU systems. Some file systems perform Unicode canonicalization on file names. These file systems preserve case, but reading the name of a just-created file using <code class="function">readdir</code> might still result in a different byte sequence.
+				</div></li><li class="listitem"><div class="para">
+					Permissions and owners are not universally supported (and SUID/SGID bits may not be available). For example, FAT file systems assign ownership based on a mount option, and generally mark all files as executable. Any attempt to change permissions would result in an error.
+				</div></li><li class="listitem"><div class="para">
+					Non-regular files (device nodes, FIFOs) are not generally available.
+				</div></li><li class="listitem"><div class="para">
+					Only on some file systems, files can have holes, that is, not all of their contents is backed by disk storage.
+				</div></li><li class="listitem"><div class="para">
+					<code class="function">ioctl</code> support (even fairly generic functionality such as <code class="literal">FIEMAP</code> for discovering physical file layout and holes) is file-system-specific.
+				</div></li><li class="listitem"><div class="para">
+					Not all file systems support extended attributes, ACLs and SELinux metadata. Size and naming restriction on extended attributes vary.
+				</div></li><li class="listitem"><div class="para">
+					Hard links may not be supported at all (FAT) or only within the same directory (AFS). Symbolic links may not be available, either. Reflinks (hard links with copy-on-write semantics) are still very rare. Recent systems restrict creation of hard links to users which own the target file or have read/write access to it, but older systems do not.
+				</div></li><li class="listitem"><div class="para">
+					Renaming (or moving) files using <code class="function">rename</code> can fail (even when <code class="function">stat</code> indicates that the source and target directories are located on the same file system). This system call should work if the old and new paths are located in the same directory, though.
+				</div></li><li class="listitem"><div class="para">
+					Locking semantics vary among file systems. This affects advisory and mandatory locks. For example, some network file systems do not allow deleting files which are opened by any process.
+				</div></li><li class="listitem"><div class="para">
+					Resolution of time stamps varies from two seconds to nanoseconds. Not all time stamps are available on all file systems. File creation time (<span class="emphasis"><em>birth time</em></span>) is not exposed over the <code class="function">stat</code>/<code class="function">fstat</code> interface, even if stored by the file system.
+				</div></li></ul></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-Tasks-File_System-Limits.html"><strong>Prev</strong>6.3. File system limits</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-File_System-Free_Space.html"><strong>Next</strong>6.5. Checking free space</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-File_System-Foreign.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-File_System-Foreign.html
new file mode 100644
index 0000000..1b58949
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-File_System-Foreign.html
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>6.2. Accessing the file system as a different user</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="chap-Defensive_Coding-Tasks-File_System.html" title="Chapter 6. File system manipulation" /><link rel="prev" href="chap-Defensive_Coding-Tasks-File_System.html" title="Chapter 6. File system manipulation" /><link rel="next" href="sect-Defensive_Coding-Tasks-File_System-Limits.html" title="6.3. File system limits" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="chap-D
 efensive_Coding-Tasks-File_System.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-File_System-Limits.html"><strong>Next</strong></a></li></ul><div class="section" id="sect-Defensive_Coding-Tasks-File_System-Foreign"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">6.2. Accessing the file system as a different user</h2></div></div></div><div class="para">
+			This section deals with access to the file system as a specific user. This is different from accessing files and directories owned by a different, potentially untrusted user; see <a class="xref" href="sect-Defensive_Coding-Tasks-File_System-Foreign.html">Section 6.2, “Accessing the file system as a different user”</a>.
+		</div><div class="para">
+			One approach is to spawn a child process which runs under the target user and group IDs (both effective and real IDs). Note that this child process can block indefinitely, even when processing regular files only. For example, a special FUSE file system could cause the process to hang in uninterruptible sleep inside a <code class="function">stat</code> system call.
+		</div><div class="para">
+			An existing process could change its user and group ID using <code class="function">setfsuid</code> and <code class="function">setfsgid</code>. (These functions are preferred over <code class="function">seteuid</code> and <code class="function">setegid</code> because they do not allow the impersonated user to send signals to the process.) These functions are not thread safe. In multi-threaded processes, these operations need to be performed in a single-threaded child process. Unexpected blocking may occur as well.
+		</div><div class="para">
+			It is not recommended to try to reimplement the kernel permission checks in user space because the required checks are complex. It is also very difficult to avoid race conditions during path name resolution.
+		</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="chap-Defensive_Coding-Tasks-File_System.html"><strong>Prev</strong>Chapter 6. File system manipulation</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-File_System-Limits.html"><strong>Next</strong>6.3. File system limits</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-File_System-Free_Space.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-File_System-Free_Space.html
new file mode 100644
index 0000000..9fa8cfa
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-File_System-Free_Space.html
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>6.5. Checking free space</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="chap-Defensive_Coding-Tasks-File_System.html" title="Chapter 6. File system manipulation" /><link rel="prev" href="sect-Defensive_Coding-Tasks-File_System-Features.html" title="6.4. File system features" /><link rel="next" href="chap-Defensive_Coding-Tasks-Temporary_Files.html" title="Chapter 7. Temporary files" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-De
 fensive_Coding-Tasks-File_System-Features.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="chap-Defensive_Coding-Tasks-Temporary_Files.html"><strong>Next</strong></a></li></ul><div class="section" id="sect-Defensive_Coding-Tasks-File_System-Free_Space"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">6.5. Checking free space</h2></div></div></div><div class="para">
+			The <code class="function">statvfs</code> and <code class="function">fstatvfs</code> functions allow programs to examine the number of available blocks and inodes, through the members <code class="literal">f_bfree</code>, <code class="literal">f_bavail</code>, <code class="literal">f_ffree</code>, and <code class="literal">f_favail</code> of <code class="literal">struct statvfs</code>. Some file systems return fictional values in the <code class="literal">f_ffree</code> and <code class="literal">f_favail</code> fields, so the only reliable way to discover if the file system still has space for a file is to try to create it. The <code class="literal">f_bfree</code> field should be reasonably accurate, though.
+		</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-Tasks-File_System-Features.html"><strong>Prev</strong>6.4. File system features</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="chap-Defensive_Coding-Tasks-Temporary_Files.html"><strong>Next</strong>Chapter 7. Temporary files</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-File_System-Limits.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-File_System-Limits.html
new file mode 100644
index 0000000..9c56a1f
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-File_System-Limits.html
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>6.3. File system limits</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="chap-Defensive_Coding-Tasks-File_System.html" title="Chapter 6. File system manipulation" /><link rel="prev" href="sect-Defensive_Coding-Tasks-File_System-Foreign.html" title="6.2. Accessing the file system as a different user" /><link rel="next" href="sect-Defensive_Coding-Tasks-File_System-Features.html" title="6.4. File system features" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a 
 accesskey="p" href="sect-Defensive_Coding-Tasks-File_System-Foreign.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-File_System-Features.html"><strong>Next</strong></a></li></ul><div class="section" id="sect-Defensive_Coding-Tasks-File_System-Limits"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">6.3. File system limits</h2></div></div></div><div class="para">
+			For historical reasons, there are preprocessor constants such as <code class="literal">PATH_MAX</code>, <code class="literal">NAME_MAX</code>. However, on most systems, the length of canonical path names (absolute path names with all symbolic links resolved, as returned by <code class="function">realpath</code> or <code class="function">canonicalize_file_name</code>) can exceed <code class="literal">PATH_MAX</code> bytes, and individual file name components can be longer than <code class="literal">NAME_MAX</code>. This is also true of the <code class="literal">_PC_PATH_MAX</code> and <code class="literal">_PC_NAME_MAX</code> values returned by <code class="function">pathconf</code>, and the <code class="literal">f_namemax</code> member of <code class="literal">struct statvfs</code>. Therefore, these constants should not be used. This is also reason why the <code class="function">readdir_r</code> should never be used (instead, use <code class="function">readdir</code>).
+		</div><div class="para">
+			You should not write code in a way that assumes that there is an upper limit on the number of subdirectories of a directory, the number of regular files in a directory, or the link count of an inode.
+		</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-Tasks-File_System-Foreign.html"><strong>Prev</strong>6.2. Accessing the file system as a different user</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-File_System-Features.html"><strong>Next</strong>6.4. File system features</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Library_Design-Callbacks.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Library_Design-Callbacks.html
new file mode 100644
index 0000000..ad935eb
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Library_Design-Callbacks.html
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>4.3. Callbacks</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="chap-Defensive_Coding-Tasks-Library_Design.html" title="Chapter 4. Library Design" /><link rel="prev" href="ch04s02.html" title="4.2. Object orientation" /><link rel="next" href="ch04s04.html" title="4.4. Process attributes" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="ch04s02.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="ch04s04.html"
 ><strong>Next</strong></a></li></ul><div class="section" id="sect-Defensive_Coding-Tasks-Library_Design-Callbacks"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">4.3. Callbacks</h2></div></div></div><div class="para">
+			Higher-order code is difficult to analyze for humans and computers alike, so it should be avoided. Often, an iterator-based interface (a library function which is called repeatedly by client code and returns a stream of events) leads to a better design which is easier to document and use.
+		</div><div class="para">
+			If callbacks are unavoidable, some guidelines for them follow.
+		</div><div class="para">
+			In modern C++ code, <code class="literal">std::function</code> objects should be used for callbacks.
+		</div><div class="para">
+			In older C++ code and in C code, all callbacks must have an additional closure parameter of type <code class="literal">void *</code>, the value of which can be specified by client code. If possible, the value of the closure parameter should be provided by client code at the same time a specific callback is registered (or specified as a function argument). If a single closure parameter is shared by multiple callbacks, flexibility is greatly reduced, and conflicts between different pieces of client code using the same library object could be unresolvable. In some cases, it makes sense to provide a de-registration callback which can be used to destroy the closure parameter when the callback is no longer used.
+		</div><div class="para">
+			Callbacks can throw exceptions or call <code class="function">longjmp</code>. If possible, all library objects should remain in a valid state. (All further operations on them can fail, but it should be possible to deallocate them without causing resource leaks.)
+		</div><div class="para">
+			The presence of callbacks raises the question if functions provided by the library are <span class="emphasis"><em>reentrant</em></span>. Unless a library was designed for such use, bad things will happen if a callback function uses functions in the same library (particularly if they are invoked on the same objects and manipulate the same state). When the callback is invoked, the library can be in an inconsistent state. Reentrant functions are more difficult to write than thread-safe functions (by definition, simple locking would immediately lead to deadlocks). It is also difficult to decide what to do when destruction of an object which is currently processing a callback is requested.
+		</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="ch04s02.html"><strong>Prev</strong>4.2. Object orientation</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="ch04s04.html"><strong>Next</strong>4.4. Process attributes</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Processes-Daemons.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Processes-Daemons.html
new file mode 100644
index 0000000..0b9e950
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Processes-Daemons.html
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>8.4. Daemons</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="sect-Defensive_Coding-Tasks-Processes.html" title="Chapter 8. Processes" /><link rel="prev" href="ch08s03.html" title="8.3. SUID/SGID processes" /><link rel="next" href="ch08s05.html" title="8.5. Semantics of command line arguments" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="ch08s03.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="ch08s
 05.html"><strong>Next</strong></a></li></ul><div class="section" id="sect-Defensive_Coding-Tasks-Processes-Daemons"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">8.4. Daemons</h2></div></div></div><div class="para">
+			Background processes providing system services (<span class="emphasis"><em>daemons</em></span>) need to decouple themselves from the controlling terminal and the parent process environment:
+		</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+					Fork.
+				</div></li><li class="listitem"><div class="para">
+					In the child process, call <code class="function">setsid</code>. The parent process can simply exit (using <code class="function">_exit</code>, to avoid running clean-up actions twice).
+				</div></li><li class="listitem"><div class="para">
+					In the child process, fork again. Processing continues in the child process. Again, the parent process should just exit.
+				</div></li><li class="listitem"><div class="para">
+					Replace the descriptors 0, 1, 2 with a descriptor for <code class="filename">/dev/null</code>. Logging should be redirected to <span class="application"><strong>syslog</strong></span>.
+				</div></li></ul></div><div class="para">
+			Older instructions for creating daemon processes recommended a call to <code class="literal">umask(0)</code>. This is risky because it often leads to world-writable files and directories, resulting in security vulnerabilities such as arbitrary process termination by untrusted local users, or log file truncation. If the <span class="emphasis"><em>umask</em></span> needs setting, a restrictive value such as <code class="literal">027</code> or <code class="literal">077</code> is recommended.
+		</div><div class="para">
+			Other aspects of the process environment may have to changed as well (environment variables, signal handler disposition).
+		</div><div class="para">
+			It is increasingly common that server processes do not run as background processes, but as regular foreground process under a supervising master process (such as <span class="application"><strong>systemd</strong></span>). Server processes should offer a command line option which disables forking and replacement of the standard output and standard error streams. Such an option is also useful for debugging.
+		</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="ch08s03.html"><strong>Prev</strong>8.3. SUID/SGID processes</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="ch08s05.html"><strong>Next</strong>8.5. Semantics of command line arguments</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Processes-Fork-Parallel.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Processes-Fork-Parallel.html
new file mode 100644
index 0000000..e522dbb
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Processes-Fork-Parallel.html
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>8.6. fork as a primitive for parallelism</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="sect-Defensive_Coding-Tasks-Processes.html" title="Chapter 8. Processes" /><link rel="prev" href="ch08s05.html" title="8.5. Semantics of command line arguments" /><link rel="next" href="chap-Defensive_Coding-Tasks-Serialization.html" title="Chapter 9. Serialization and Deserialization" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="ch08s05.html"><strong>Prev</strong
 ></a></li><li class="next"><a accesskey="n" href="chap-Defensive_Coding-Tasks-Serialization.html"><strong>Next</strong></a></li></ul><div class="section" id="sect-Defensive_Coding-Tasks-Processes-Fork-Parallel"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">8.6. <code class="function">fork</code> as a primitive for parallelism</h2></div></div></div><div class="para">
+			A call to <code class="function">fork</code> which is not immediately followed by a call to <code class="function">execve</code> (perhaps after rearranging and closing file descriptors) is typically unsafe, especially from a library which does not control the state of the entire process. Such use of <code class="function">fork</code> should be replaced with proper child processes or threads.
+		</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="ch08s05.html"><strong>Prev</strong>8.5. Semantics of command line arguments</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="chap-Defensive_Coding-Tasks-Serialization.html"><strong>Next</strong>Chapter 9. Serialization and Deserialization</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Processes.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Processes.html
new file mode 100644
index 0000000..48ac8d5
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Processes.html
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 8. Processes</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="pt02.html" title="Part II. Specific Programming Tasks" /><link rel="prev" href="ch07s05.html" title="7.5. Compensating for unsafe file creation" /><link rel="next" href="ch08s02.html" title="8.2. Handling child process termination" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="ch07s05.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="ch08s0
 2.html"><strong>Next</strong></a></li></ul><div xml:lang="en-US" class="chapter" id="sect-Defensive_Coding-Tasks-Processes" lang="en-US"><div class="titlepage"><div><div><h2 class="title">Chapter 8. Processes</h2></div></div></div><div class="toc"><dl><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Processes.html#sect-Defensive_Coding-Tasks-Processes-Creation">8.1. Safe process creation</a></span></dt><dd><dl><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Processes.html#idp21252560">8.1.1. Obtaining the program path and the command line template</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Processes.html#sect-Defensive_Coding-Tasks-Processes-execve">8.1.2. Bypassing the shell</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Processes.html#sect-Defensive_Coding-Tasks-Processes-environ">8.1.3. Specifying the process environment</a></span></dt><dt><span class="section"><a href="sect-D
 efensive_Coding-Tasks-Processes.html#idm7005712">8.1.4. Robust argument list processing</a></span></dt><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Processes.html#sect-Defensive_Coding-Tasks-Processes-Command_Line_Visibility">8.1.5. Passing secrets to subprocesses</a></span></dt></dl></dd><dt><span class="section"><a href="ch08s02.html">8.2. Handling child process termination</a></span></dt><dt><span class="section"><a href="ch08s03.html">8.3. <code class="literal">SUID</code>/<code class="literal">SGID</code> processes</a></span></dt><dd><dl><dt><span class="section"><a href="ch08s03.html#sect-Defensive_Coding-Tasks-secure_getenv">8.3.1. Accessing environment variables</a></span></dt></dl></dd><dt><span class="section"><a href="sect-Defensive_Coding-Tasks-Processes-Daemons.html">8.4. Daemons</a></span></dt><dt><span class="section"><a href="ch08s05.html">8.5. Semantics of command line arguments</a></span></dt><dt><span class="section"><a href="sect-Defensi
 ve_Coding-Tasks-Processes-Fork-Parallel.html">8.6. <code class="function">fork</code> as a primitive for parallelism</a></span></dt></dl></div><div class="section" id="sect-Defensive_Coding-Tasks-Processes-Creation"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">8.1. Safe process creation</h2></div></div></div><div class="para">
+			This section describes how to create new child processes in a safe manner. In addition to the concerns addressed below, there is the possibility of file descriptor leaks, see <a class="xref" href="sect-Defensive_Coding-Tasks-Descriptors-Child_Processes.html">Section 5.2, “Preventing file descriptor leaks to child processes”</a>.
+		</div><div class="section" id="idp21252560"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idp21252560">8.1.1. Obtaining the program path and the command line template</h3></div></div></div><div class="para">
+				The name and path to the program being invoked should be hard-coded or controlled by a static configuration file stored at a fixed location (at an file system absolute path). The same applies to the template for generating the command line.
+			</div><div class="para">
+				The configured program name should be an absolute path. If it is a relative path, the contents of the <code class="envar">PATH</code> must be obtained in s secure manner (see <a class="xref" href="ch08s03.html#sect-Defensive_Coding-Tasks-secure_getenv">Section 8.3.1, “Accessing environment variables”</a>). If the <code class="envar">PATH</code> variable is not set or untrusted, the safe default <code class="literal">/bin:/usr/bin</code> must be used.
+			</div><div class="para">
+				If too much flexibility is provided here, it may allow invocation of arbitrary programs without proper authorization.
+			</div></div><div class="section" id="sect-Defensive_Coding-Tasks-Processes-execve"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">8.1.2. Bypassing the shell</h3></div></div></div><div class="para">
+				Child processes should be created without involving the system shell.
+			</div><div class="para">
+				For C/C++, <code class="function">system</code> should not be used. The <code class="function">posix_spawn</code> function can be used instead, or a combination <code class="function">fork</code> and <code class="function">execve</code>. (In some cases, it may be preferable to use <code class="function">vfork</code> or the Linux-specific <code class="function">clone</code> system call instead of <code class="function">fork</code>.)
+			</div><div class="para">
+				In Python, the <code class="literal">subprocess</code> module bypasses the shell by default (when the <code class="literal">shell</code> keyword argument is not set to true). <code class="function">os.system</code> should not be used.
+			</div><div class="para">
+				The Java class <span class="type">java.lang.ProcessBuilder</span> can be used to create subprocesses without interference from the system shell.
+			</div><div class="important"><div class="admonition_header"><h2>Portability notice</h2></div><div class="admonition"><div class="para">
+					On Windows, there is no argument vector, only a single argument string. Each application is responsible for parsing this string into an argument vector. There is considerable variance among the quoting style recognized by applications. Some of them expand shell wildcards, others do not. Extensive application-specific testing is required to make this secure.
+				</div></div></div><div class="para">
+				Note that some common applications (notably <span class="application"><strong>ssh</strong></span>) unconditionally introduce the use of a shell, even if invoked directly without a shell. It is difficult to use these applications in a secure manner. In this case, untrusted data should be supplied by other means. For example, standard input could be used, instead of the command line.
+			</div></div><div class="section" id="sect-Defensive_Coding-Tasks-Processes-environ"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">8.1.3. Specifying the process environment</h3></div></div></div><div class="para">
+				Child processes should be created with a minimal set of environment variables. This is absolutely essential if there is a trust transition involved, either when the parent process was created, or during the creation of the child process.
+			</div><div class="para">
+				In C/C++, the environment should be constructed as an array of strings and passed as the <code class="varname">envp</code> argument to <code class="function">posix_spawn</code> or <code class="function">execve</code>. The functions <code class="function">setenv</code>, <code class="function">unsetenv</code> and <code class="function">putenv</code> should not be used. They are not thread-safe and suffer from memory leaks.
+			</div><div class="para">
+				Python programs need to specify a <code class="literal">dict</code> for the the <code class="varname">env</code> argument of the <code class="function">subprocess.Popen</code> constructor. The Java class <code class="literal">java.lang.ProcessBuilder</code> provides a <code class="function">environment()</code> method, which returns a map that can be manipulated.
+			</div><div class="para">
+				The following list provides guidelines for selecting the set of environment variables passed to the child process.
+			</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+						<code class="envar">PATH</code> should be initialized to <code class="literal">/bin:/usr/bin</code>.
+					</div></li><li class="listitem"><div class="para">
+						<code class="envar">USER</code> and <code class="envar">HOME</code> can be inhereted from the parent process environment, or they can be initialized from the <code class="literal">pwent</code> structure for the user. 
+					</div></li><li class="listitem"><div class="para">
+						The <code class="envar">DISPLAY</code> and <code class="envar">XAUTHORITY</code> variables should be passed to the subprocess if it is an X program. Note that this will typically not work across trust boundaries because <code class="envar">XAUTHORITY</code> refers to a file with <code class="literal">0600</code> permissions.
+					</div></li><li class="listitem"><div class="para">
+						The location-related environment variables <code class="envar">LANG</code>, <code class="envar">LANGUAGE</code>, <code class="envar">LC_ADDRESS</code>, <code class="envar">LC_ALL</code>, <code class="envar">LC_COLLATE</code>, <code class="envar">LC_CTYPE</code>, <code class="envar">LC_IDENTIFICATION</code>, <code class="envar">LC_MEASUREMENT</code>, <code class="envar">LC_MESSAGES</code>, <code class="envar">LC_MONETARY</code>, <code class="envar">LC_NAME</code>, <code class="envar">LC_NUMERIC</code>, <code class="envar">LC_PAPER</code>, <code class="envar">LC_TELEPHONE</code> and <code class="envar">LC_TIME</code> can be passed to the subprocess if present.
+					</div></li><li class="listitem"><div class="para">
+						The called process may need application-specific environment variables, for example for passing passwords. (See <a class="xref" href="sect-Defensive_Coding-Tasks-Processes.html#sect-Defensive_Coding-Tasks-Processes-Command_Line_Visibility">Section 8.1.5, “Passing secrets to subprocesses”</a>.)
+					</div></li><li class="listitem"><div class="para">
+						All other environment variables should be dropped. Names for new environment variables should not be accepted from untrusted sources.
+					</div></li></ul></div></div><div class="section" id="idm7005712"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title" id="idm7005712">8.1.4. Robust argument list processing</h3></div></div></div><div class="para">
+				When invoking a program, it is sometimes necessary to include data from untrusted sources. Such data should be check against embedded <code class="literal">NUL</code> characters because the system APIs will sliently truncate argument strings at the first <code class="literal">NUL</code> character.
+			</div><div class="para">
+				The following recommendations assume that the program being invoked uses GNU-style option processing using <code class="function">getopt_long</code>. This convention is widely used, but it is just that, and individual programs might interpret a command line in a different way.
+			</div><div class="para">
+				If the untrusted data has to go into an option, use the <code class="literal">--option-name=VALUE</code> syntax, placing the option and its value into the same command line argument. This avoids any potential confusion if the data starts with <code class="literal">-</code>.
+			</div><div class="para">
+				For positional arguments, terminate the option list with a single <code class="option">--</code> marker after the last option, and include the data at the right position. The <code class="option">--</code> marker terminates option processing, and the data will not be treated as an option even if it starts with a dash.
+			</div></div><div class="section" id="sect-Defensive_Coding-Tasks-Processes-Command_Line_Visibility"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">8.1.5. Passing secrets to subprocesses</h3></div></div></div><div class="para">
+				The command line (the name of the program and its argument) of a running process is traditionally available to all local users. The called program can overwrite this information, but only after it has run for a bit of time, during which the information may have been read by other processes. However, on Linux, the process environment is restricted to the user who runs the process. Therefore, if you need a convenient way to pass a password to a child process, use an environment variable, and not a command line argument. (See <a class="xref" href="sect-Defensive_Coding-Tasks-Processes.html#sect-Defensive_Coding-Tasks-Processes-environ">Section 8.1.3, “Specifying the process environment”</a>.)
+			</div><div class="important"><div class="admonition_header"><h2>Portability notice</h2></div><div class="admonition"><div class="para">
+					On some UNIX-like systems (notably Solaris), environment variables can be read by any system user, just like command lines.
+				</div></div></div><div class="para">
+				If the environment-based approach cannot be used due to portability concerns, the data can be passed on standard input. Some programs (notably <span class="application"><strong>gpg</strong></span>) use special file descriptors whose numbers are specified on the command line. Temporary files are an option as well, but they might give digital forensics access to sensitive data (such as passphrases) because it is difficult to safely delete them in all cases.
+			</div></div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="ch07s05.html"><strong>Prev</strong>7.5. Compensating for unsafe file creation</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="ch08s02.html"><strong>Next</strong>8.2. Handling child process termination</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Serialization-XML-Entities.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Serialization-XML-Entities.html
new file mode 100644
index 0000000..37b3131
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Serialization-XML-Entities.html
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>9.4.2. Entity expansion</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="sect-Defensive_Coding-Tasks-Serialization-XML.html" title="9.4. XML serialization" /><link rel="prev" href="sect-Defensive_Coding-Tasks-Serialization-XML.html" title="9.4. XML serialization" /><link rel="next" href="sect-Defensive_Coding-Tasks-Serialization-XML-XInclude.html" title="9.4.3. XInclude processing" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defens
 ive_Coding-Tasks-Serialization-XML.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-Serialization-XML-XInclude.html"><strong>Next</strong></a></li></ul><div class="section" id="sect-Defensive_Coding-Tasks-Serialization-XML-Entities"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">9.4.2. Entity expansion</h3></div></div></div><div class="para">
+				When external DTD processing is disabled, an internal DTD subset can still contain entity definitions. Entity declarations can reference other entities. Some XML libraries expand entities automatically, and this processing cannot be switched off in some places (such as attribute values or content models). Without limits on the entity nesting level, this expansion results in data which can grow exponentially in length with size of the input. (If there is a limit on the nesting level, the growth is still polynomial, unless further limits are imposed.)
+			</div><div class="para">
+				Consequently, the processing internal DTD subsets should be disabled if possible, and only trusted DTDs should be processed. If a particular XML application does not permit such restrictions, then application-specific limits are called for.
+			</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-Tasks-Serialization-XML.html"><strong>Prev</strong>9.4. XML serialization</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-Serialization-XML-XInclude.html"><strong>Next</strong>9.4.3. XInclude processing</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Serialization-XML-Expat.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Serialization-XML-Expat.html
new file mode 100644
index 0000000..7219bd6
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Serialization-XML-Expat.html
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>9.4.5. Using Expat for XML parsing</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="sect-Defensive_Coding-Tasks-Serialization-XML.html" title="9.4. XML serialization" /><link rel="prev" href="sect-Defensive_Coding-Tasks-Serialization-XML-Validation.html" title="9.4.4. Algorithmic complexity of XML validation" /><link rel="next" href="sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse.html" title="9.4.6. Using OpenJDK for XML parsing and validation" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul clas
 s="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-Tasks-Serialization-XML-Validation.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse.html"><strong>Next</strong></a></li></ul><div class="section" id="sect-Defensive_Coding-Tasks-Serialization-XML-Expat"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">9.4.5. Using Expat for XML parsing</h3></div></div></div><div class="para">
+				By default, Expat does not try to resolve external IDs, so no steps are required to block them. However, internal entity declarations are processed. Installing a callback which stops parsing as soon as such entities are encountered disables them, see <a class="xref" href="sect-Defensive_Coding-Tasks-Serialization-XML-Expat.html#ex-Defensive_Coding-Tasks-Serialization-XML-Expat-EntityDeclHandler">Example 9.1, “Disabling XML entity processing with Expat”</a>. Expat does not perform any validation, so there are no problems related to that.
+			</div><div class="example" id="ex-Defensive_Coding-Tasks-Serialization-XML-Expat-EntityDeclHandler"><h6>Example 9.1. Disabling XML entity processing with Expat</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Comment">// Stop the parser when an entity declaration is encountered.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_DataType">static</span> <span class="perl_DataType">void</span>
+EntityDeclHandler(<span class="perl_DataType">void</span> *userData,
+		  <span class="perl_DataType">const</span> XML_Char *entityName, <span class="perl_DataType">int</span> is_parameter_entity,
+		  <span class="perl_DataType">const</span> XML_Char *value, <span class="perl_DataType">int</span> value_length,
+		  <span class="perl_DataType">const</span> XML_Char *base, <span class="perl_DataType">const</span> XML_Char *systemId,
+		  <span class="perl_DataType">const</span> XML_Char *publicId, <span class="perl_DataType">const</span> XML_Char *notationName)
+{
+  XML_StopParser((XML_Parser)userData, XML_FALSE);
+}
+</pre></div></div><br class="example-break" /><div class="para">
+				This handler must be installed when the <code class="literal">XML_Parser</code> object is created (<a class="xref" href="sect-Defensive_Coding-Tasks-Serialization-XML-Expat.html#ex-Defensive_Coding-Tasks-Serialization-XML-Expat-Create">Example 9.2, “Creating an Expat XML parser”</a>).
+			</div><div class="example" id="ex-Defensive_Coding-Tasks-Serialization-XML-Expat-Create"><h6>Example 9.2. Creating an Expat XML parser</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+XML_Parser parser = XML_ParserCreate(<span class="perl_String">"UTF-8"</span>);
+<span class="perl_Keyword">if</span> (parser == NULL) {
+  fprintf(stderr, <span class="perl_String">"XML_ParserCreate failed</span><span class="perl_Char">\n</span><span class="perl_String">"</span>);
+  close(fd);
+  exit(<span class="perl_Float">1</span>);
+}
+<span class="perl_Comment">// EntityDeclHandler needs a reference to the parser to stop</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// parsing.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>XML_SetUserData(parser, parser);
+<span class="perl_Comment">// Disable entity processing, to inhibit entity expansion.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>XML_SetEntityDeclHandler(parser, EntityDeclHandler);
+</pre></div></div><br class="example-break" /><div class="para">
+				It is also possible to reject internal DTD subsets altogeher, using a suitable <code class="literal">XML_StartDoctypeDeclHandler</code> handler installed with <code class="function">XML_SetDoctypeDeclHandler</code>.
+			</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-Tasks-Serialization-XML-Validation.html"><strong>Prev</strong>9.4.4. Algorithmic complexity of XML validation</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse.html"><strong>Next</strong>9.4.6. Using OpenJDK for XML parsing and validati...</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse-SAX.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse-SAX.html
new file mode 100644
index 0000000..03af6ea
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse-SAX.html
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>9.4.6.2. XML Schema validation in OpenJDK</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse.html" title="9.4.6. Using OpenJDK for XML parsing and validation" /><link rel="prev" href="sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse.html" title="9.4.6. Using OpenJDK for XML parsing and validation" /><link rel="next" href="ch09s05.html" title="9.5. Protocol Encoders" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"
 ><a accesskey="p" href="sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="ch09s05.html"><strong>Next</strong></a></li></ul><div class="section" id="sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse-SAX"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title">9.4.6.2. XML Schema validation in OpenJDK</h4></div></div></div><div class="para">
+					<a class="xref" href="sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse-SAX.html#ex-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse-XMLSchema_SAX">Example 9.7, “SAX-based validation against an XML schema in OpenJDK”</a> shows how to validate a document against an XML Schema, using a SAX-based approach. The XML data is read from an <code class="literal">java.io.InputStream</code> in the <code class="literal">inputStream</code> variable.
+				</div><div class="example" id="ex-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse-XMLSchema_SAX"><h6>Example 9.7. SAX-based validation against an XML schema in OpenJDK</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+SchemaFactory factory = SchemaFactory.<span class="perl_Function">newInstance</span>(
+        XMLConstants.<span class="perl_Function">W3C_XML_SCHEMA_NS_URI</span>);
+
+<span class="perl_Comment">// This enables restrictions on the schema and document</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// complexity.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>factory.<span class="perl_Function">setFeature</span>(XMLConstants.<span class="perl_Function">FEATURE_SECURE_PROCESSING</span>, <span class="perl_Keyword">true</span>);
+
+<span class="perl_Comment">// This prevents resource resolution by the schema itself.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// If the schema is trusted and references additional files,</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// this line must be omitted, otherwise loading these files</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// will fail.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>factory.<span class="perl_Function">setResourceResolver</span>(<span class="perl_Keyword">new</span> <span class="perl_Function">NoResourceResolver</span>());
+
+Schema schema = factory.<span class="perl_Function">newSchema</span>(schemaFile);
+Validator validator = schema.<span class="perl_Function">newValidator</span>();
+
+<span class="perl_Comment">// This prevents external resource resolution.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>validator.<span class="perl_Function">setResourceResolver</span>(<span class="perl_Keyword">new</span> <span class="perl_Function">NoResourceResolver</span>());
+
+validator.<span class="perl_Function">validate</span>(<span class="perl_Keyword">new</span> SAXSource(<span class="perl_Keyword">new</span> InputSource(inputStream)));
+</pre></div></div><br class="example-break" /><div class="para">
+					The <code class="literal">NoResourceResolver</code> class is defined in <a class="xref" href="sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse.html#ex-Defensive_Coding-Tasks-Serialization-XML-OpenJDK-NoResourceResolver">Example 9.4, “Helper class to prevent schema resolution in OpenJDK”</a>.
+				</div><div class="para">
+					If you need to validate a document against an XML schema, use the code in <a class="xref" href="sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse.html#ex-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse-DOM">Example 9.6, “DOM-based XML parsing in OpenJDK”</a> to create the document, but do not enable validation at this point. Then use <a class="xref" href="sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse-SAX.html#ex-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse-XMLSchema_DOM">Example 9.8, “Validation of a DOM document against an XML schema in OpenJDK”</a> to perform the schema-based validation on the <code class="literal">org.w3c.dom.Document</code> instance <code class="literal">document</code>.
+				</div><div class="example" id="ex-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse-XMLSchema_DOM"><h6>Example 9.8. Validation of a DOM document against an XML schema in OpenJDK</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+SchemaFactory factory = SchemaFactory.<span class="perl_Function">newInstance</span>(
+        XMLConstants.<span class="perl_Function">W3C_XML_SCHEMA_NS_URI</span>);
+
+<span class="perl_Comment">// This enables restrictions on schema complexity.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>factory.<span class="perl_Function">setFeature</span>(XMLConstants.<span class="perl_Function">FEATURE_SECURE_PROCESSING</span>, <span class="perl_Keyword">true</span>);
+
+<span class="perl_Comment">// The following line prevents resource resolution</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// by the schema itself.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>factory.<span class="perl_Function">setResourceResolver</span>(<span class="perl_Keyword">new</span> <span class="perl_Function">NoResourceResolver</span>());
+
+Schema schema = factory.<span class="perl_Function">newSchema</span>(schemaFile);
+
+Validator validator = schema.<span class="perl_Function">newValidator</span>();
+
+<span class="perl_Comment">// This prevents external resource resolution.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>validator.<span class="perl_Function">setResourceResolver</span>(<span class="perl_Keyword">new</span> <span class="perl_Function">NoResourceResolver</span>());
+validator.<span class="perl_Function">validate</span>(<span class="perl_Keyword">new</span> DOMSource(document));
+</pre></div></div><br class="example-break" /></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse.html"><strong>Prev</strong>9.4.6. Using OpenJDK for XML parsing and validati...</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="ch09s05.html"><strong>Next</strong>9.5. Protocol Encoders</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse.html
new file mode 100644
index 0000000..656221f
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse.html
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>9.4.6. Using OpenJDK for XML parsing and validation</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="sect-Defensive_Coding-Tasks-Serialization-XML.html" title="9.4. XML serialization" /><link rel="prev" href="sect-Defensive_Coding-Tasks-Serialization-XML-Expat.html" title="9.4.5. Using Expat for XML parsing" /><link rel="next" href="sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse-SAX.html" title="9.4.6.2. XML Schema validation in OpenJDK" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="pr
 evious"><a accesskey="p" href="sect-Defensive_Coding-Tasks-Serialization-XML-Expat.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse-SAX.html"><strong>Next</strong></a></li></ul><div class="section" id="sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">9.4.6. Using OpenJDK for XML parsing and validation</h3></div></div></div><div class="para">
+				OpenJDK contains facilities for DOM-based, SAX-based, and StAX-based document parsing. Documents can be validated against DTDs or XML schemas.
+			</div><div class="para">
+				The approach taken to deal with entity expansion differs from the general recommendation in <a class="xref" href="sect-Defensive_Coding-Tasks-Serialization-XML-Entities.html">Section 9.4.2, “Entity expansion”</a>. We enable the the feature flag <code class="literal">javax.xml.XMLConstants.FEATURE_SECURE_PROCESSING</code>, which enforces heuristic restrictions on the number of entity expansions. Note that this flag alone does not prevent resolution of external references (system IDs or public IDs), so it is slightly misnamed.
+			</div><div class="para">
+				In the following sections, we use helper classes to prevent external ID resolution.
+			</div><div class="example" id="ex-Defensive_Coding-Tasks-Serialization-XML-OpenJDK-NoEntityResolver"><h6>Example 9.3. Helper class to prevent DTD external entity resolution in OpenJDK</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Keyword">class</span> NoEntityResolver <span class="perl_Keyword">implements</span> EntityResolver {
+    @Override
+    <span class="perl_Keyword">public</span> InputSource <span class="perl_Function">resolveEntity</span>(String publicId, String systemId)
+            <span class="perl_Keyword">throws</span> SAXException, IOException {
+        <span class="perl_Comment">// Throwing an exception stops validation.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>        <span class="perl_Keyword">throw</span> <span class="perl_Keyword">new</span> IOException(String<span class="perl_Function">.format(</span><span class="perl_Function"></span>
+<span class="perl_Function"></span>                <span class="perl_String">"attempt to resolve </span><span class="perl_Char">\"</span><span class="perl_String">%s</span><span class="perl_Char">\"</span><span class="perl_String"> </span><span class="perl_Char">\"</span><span class="perl_String">%s</span><span class="perl_Char">\"</span><span class="perl_String">"</span>, publicId, systemId));
+    }
+}
+</pre></div></div><br class="example-break" /><div class="example" id="ex-Defensive_Coding-Tasks-Serialization-XML-OpenJDK-NoResourceResolver"><h6>Example 9.4. Helper class to prevent schema resolution in OpenJDK</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Keyword">class</span> NoResourceResolver <span class="perl_Keyword">implements</span> LSResourceResolver {
+    @Override
+    <span class="perl_Keyword">public</span> LSInput <span class="perl_Function">resolveResource</span>(String type, String namespaceURI,
+            String publicId, String systemId, String baseURI) {
+        <span class="perl_Comment">// Throwing an exception stops validation.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>        <span class="perl_Keyword">throw</span> <span class="perl_Keyword">new</span> RuntimeException(String<span class="perl_Function">.format(</span><span class="perl_Function"></span>
+<span class="perl_Function"></span>                <span class="perl_String">"resolution attempt: type=%s namespace=%s "</span> +
+                <span class="perl_String">"publicId=%s systemId=%s baseURI=%s"</span>,
+                type, namespaceURI, publicId, systemId, baseURI));
+    }
+}
+</pre></div></div><br class="example-break" /><div class="para">
+				<a class="xref" href="sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse.html#ex-Defensive_Coding-Tasks-Serialization-XML-OpenJDK-Imports">Example 9.5, “Java imports for OpenJDK XML parsing”</a> shows the imports used by the examples.
+			</div><div class="example" id="ex-Defensive_Coding-Tasks-Serialization-XML-OpenJDK-Imports"><h6>Example 9.5. Java imports for OpenJDK XML parsing</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+<span class="perl_Keyword">import</span> javax.xml.XMLConstants;
+<span class="perl_Keyword">import</span> javax.xml.parsers.DocumentBuilder;
+<span class="perl_Keyword">import</span> javax.xml.parsers.DocumentBuilderFactory;
+<span class="perl_Keyword">import</span> javax.xml.parsers.ParserConfigurationException;
+<span class="perl_Keyword">import</span> javax.xml.parsers.SAXParser;
+<span class="perl_Keyword">import</span> javax.xml.parsers.SAXParserFactory;
+<span class="perl_Keyword">import</span> javax.xml.transform.dom.DOMSource;
+<span class="perl_Keyword">import</span> javax.xml.transform.sax.SAXSource;
+<span class="perl_Keyword">import</span> javax.xml.validation.Schema;
+<span class="perl_Keyword">import</span> javax.xml.validation.SchemaFactory;
+<span class="perl_Keyword">import</span> javax.xml.validation.Validator;
+
+<span class="perl_Keyword">import</span> org.w3c.dom.Document;
+<span class="perl_Keyword">import</span> org.w3c.dom.ls.LSInput;
+<span class="perl_Keyword">import</span> org.w3c.dom.ls.LSResourceResolver;
+<span class="perl_Keyword">import</span> org.xml.sax.EntityResolver;
+<span class="perl_Keyword">import</span> org.xml.sax.ErrorHandler;
+<span class="perl_Keyword">import</span> org.xml.sax.InputSource;
+<span class="perl_Keyword">import</span> org.xml.sax.SAXException;
+<span class="perl_Keyword">import</span> org.xml.sax.SAXParseException;
+<span class="perl_Keyword">import org.xml.sax.XMLReader;</span>
+</pre></div></div><br class="example-break" /><div class="section" id="sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse-DOM"><div class="titlepage"><div><div keep-together.within-column="always"><h4 class="title">9.4.6.1. DOM-based XML parsing and DTD validation in OpenJDK</h4></div></div></div><div class="para">
+					This approach produces a <code class="literal">org.w3c.dom.Document</code> object from an input stream. <a class="xref" href="sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse.html#ex-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse-DOM">Example 9.6, “DOM-based XML parsing in OpenJDK”</a> use the data from the <code class="literal">java.io.InputStream</code> instance in the <code class="literal">inputStream</code> variable.
+				</div><div class="example" id="ex-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse-DOM"><h6>Example 9.6. DOM-based XML parsing in OpenJDK</h6><div class="example-contents"><pre xml:lang="en-US" class="programlisting" lang="en-US">
+DocumentBuilderFactory factory = DocumentBuilderFactory.<span class="perl_Function">newInstance</span>();
+<span class="perl_Comment">// Impose restrictions on the complexity of the DTD.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>factory.<span class="perl_Function">setFeature</span>(XMLConstants.<span class="perl_Function">FEATURE_SECURE_PROCESSING</span>, <span class="perl_Keyword">true</span>);
+
+<span class="perl_Comment">// Turn on validation.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span><span class="perl_Comment">// This step can be omitted if validation is not desired.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>factory.<span class="perl_Function">setValidating</span>(<span class="perl_Keyword">true</span>);
+
+<span class="perl_Comment">// Parse the document.</span><span class="perl_Comment"></span>
+<span class="perl_Comment"></span>DocumentBuilder builder = factory.<span class="perl_Function">newDocumentBuilder</span>();
+builder.<span class="perl_Function">setEntityResolver</span>(<span class="perl_Keyword">new</span> <span class="perl_Function">NoEntityResolver</span>());
+builder.<span class="perl_Function">setErrorHandler</span>(<span class="perl_Keyword">new</span> <span class="perl_Function">Errors</span>());
+Document document = builder.<span class="perl_Function">parse</span>(inputStream);
+</pre></div></div><br class="example-break" /><div class="para">
+					External entity references are prohibited using the <code class="literal">NoEntityResolver</code> class in <a class="xref" href="sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse.html#ex-Defensive_Coding-Tasks-Serialization-XML-OpenJDK-NoEntityResolver">Example 9.3, “Helper class to prevent DTD external entity resolution in OpenJDK”</a>. Because external DTD references are prohibited, DTD validation (if enabled) will only happen against the internal DTD subset embedded in the XML document.
+				</div><div class="para">
+					To validate the document against an external DTD, use a <code class="literal">javax.xml.transform.Transformer</code> class to add the DTD reference to the document, and an entity resolver which whitelists this external reference.
+				</div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-Tasks-Serialization-XML-Expat.html"><strong>Prev</strong>9.4.5. Using Expat for XML parsing</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-Serialization-XML-OpenJDK_Parse-SAX.html"><strong>Next</strong>9.4.6.2. XML Schema validation in OpenJDK</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Serialization-XML-Validation.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Serialization-XML-Validation.html
new file mode 100644
index 0000000..642c3d1
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Serialization-XML-Validation.html
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>9.4.4. Algorithmic complexity of XML validation</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="sect-Defensive_Coding-Tasks-Serialization-XML.html" title="9.4. XML serialization" /><link rel="prev" href="sect-Defensive_Coding-Tasks-Serialization-XML-XInclude.html" title="9.4.3. XInclude processing" /><link rel="next" href="sect-Defensive_Coding-Tasks-Serialization-XML-Expat.html" title="9.4.5. Using Expat for XML parsing" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p"
  href="sect-Defensive_Coding-Tasks-Serialization-XML-XInclude.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-Serialization-XML-Expat.html"><strong>Next</strong></a></li></ul><div class="section" id="sect-Defensive_Coding-Tasks-Serialization-XML-Validation"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">9.4.4. Algorithmic complexity of XML validation</h3></div></div></div><div class="para">
+				DTD-based XML validation uses regular expressions for content models. The XML specification requires that content models are deterministic, which means that efficient validation is possible. However, some implementations do not enforce determinism, and require exponential (or just polynomial) amount of space or time for validating some DTD/document combinations.
+			</div><div class="para">
+				XML schemas and RELAX NG (via the <code class="literal">xsd:</code> prefix) directly support textual regular expressions which are not required to be deterministic.
+			</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-Tasks-Serialization-XML-XInclude.html"><strong>Prev</strong>9.4.3. XInclude processing</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-Serialization-XML-Expat.html"><strong>Next</strong>9.4.5. Using Expat for XML parsing</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Serialization-XML-XInclude.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Serialization-XML-XInclude.html
new file mode 100644
index 0000000..53f9b27
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Serialization-XML-XInclude.html
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>9.4.3. XInclude processing</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="sect-Defensive_Coding-Tasks-Serialization-XML.html" title="9.4. XML serialization" /><link rel="prev" href="sect-Defensive_Coding-Tasks-Serialization-XML-Entities.html" title="9.4.2. Entity expansion" /><link rel="next" href="sect-Defensive_Coding-Tasks-Serialization-XML-Validation.html" title="9.4.4. Algorithmic complexity of XML validation" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><
 a accesskey="p" href="sect-Defensive_Coding-Tasks-Serialization-XML-Entities.html"><strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-Serialization-XML-Validation.html"><strong>Next</strong></a></li></ul><div class="section" id="sect-Defensive_Coding-Tasks-Serialization-XML-XInclude"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">9.4.3. XInclude processing</h3></div></div></div><div class="para">
+				XInclude processing can reference file and network resources and include them into the document, much like external entity references. When parsing untrusted XML documents, XInclude processing should be truned off.
+			</div><div class="para">
+				XInclude processing is also fairly complex and may pull in support for the XPointer and XPath specifications, considerably increasing the amount of code required for XML processing.
+			</div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="sect-Defensive_Coding-Tasks-Serialization-XML-Entities.html"><strong>Prev</strong>9.4.2. Entity expansion</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-Serialization-XML-Validation.html"><strong>Next</strong>9.4.4. Algorithmic complexity of XML validation</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Serialization-XML.html b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Serialization-XML.html
new file mode 100644
index 0000000..99e722f
--- /dev/null
+++ b/public_html/en-US/Fedora_Security_Team/html/Defensive_Coding/sect-Defensive_Coding-Tasks-Serialization-XML.html
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>9.4. XML serialization</title><link rel="stylesheet" type="text/css" href="Common_Content/css/default.css" /><link rel="stylesheet" media="print" href="Common_Content/css/print.css" type="text/css" /><meta name="generator" content="publican 2.8" /><meta name="package" content="Fedora_Security_Team-Defensive_Coding--en-US-1-" /><script type="text/javascript" src="../../../../../toc.js"></script><script type="text/javascript">
+              addID('Fedora_Security_Team');
+              
+              addID('Fedora_Security_Team..books');
+	      addID('Fedora_Security_Team..Defensive_Coding');
+              </script><link rel="home" href="index.html" title="Defensive Coding" /><link rel="up" href="chap-Defensive_Coding-Tasks-Serialization.html" title="Chapter 9. Serialization and Deserialization" /><link rel="prev" href="ch09s03.html" title="9.3. Library support for deserialization" /><link rel="next" href="sect-Defensive_Coding-Tasks-Serialization-XML-Entities.html" title="9.4.2. Entity expansion" /></head><body class="toc_embeded "><div id="tocdiv" class="toc"><iframe id="tocframe" class="toc" src="../../../../toc.html">This is an iframe, to view it upgrade your browser or enable iframe display.</iframe></div><p id="title"><a class="left" href="http://www.fedoraproject.org"><img src="Common_Content/images/image_left.png" alt="Product Site" /></a><a class="right" href="http://docs.fedoraproject.org"><img src="Common_Content/images/image_right.png" alt="Documentation Site" /></a></p><ul class="docnav"><li class="previous"><a accesskey="p" href="ch09s03.html"><
 strong>Prev</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-Serialization-XML-Entities.html"><strong>Next</strong></a></li></ul><div class="section" id="sect-Defensive_Coding-Tasks-Serialization-XML"><div class="titlepage"><div><div keep-together.within-column="always"><h2 class="title">9.4. XML serialization</h2></div></div></div><div class="para">
+
+		</div><div class="section" id="sect-Defensive_Coding-Tasks-Serialization-XML-External"><div class="titlepage"><div><div keep-together.within-column="always"><h3 class="title">9.4.1. External references</h3></div></div></div><div class="para">
+				XML documents can contain external references. They can occur in various places.
+			</div><div class="itemizedlist"><ul><li class="listitem"><div class="para">
+						In the DTD declaration in the header of an XML document:
+					</div><div class="informalexample"><pre class="programlisting">
+<span class="perl_DataType">&lt;!DOCTYPE </span>html PUBLIC
+  "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"<span class="perl_DataType">&gt;</span>
+</pre></div></li><li class="listitem"><div class="para">
+						In a namespace declaration:
+					</div><div class="informalexample"><pre class="programlisting">
+<span class="perl_Keyword">&lt;xsd:schema</span><span class="perl_Others"> xmlns:xsd=</span><span class="perl_String">"http://www.w3.org/2001/XMLSchema"</span><span class="perl_Keyword">&gt;</span>
+</pre></div></li><li class="listitem"><div class="para">
+						In an entity defintion:
+					</div><div class="informalexample"><pre class="programlisting">
+<span class="perl_Error">&lt;</span>!ENTITY sys SYSTEM "http://www.example.com/ent.xml"&gt;
+<span class="perl_Error">&lt;</span>!ENTITY pub PUBLIC "-//Example//Public Entity//EN"
+  "http://www.example.com/pub-ent.xml"&gt;
+</pre></div></li><li class="listitem"><div class="para">
+						In a notation:
+					</div><div class="informalexample"><pre class="programlisting">
+<span class="perl_Error">&lt;</span>!NOTATION not SYSTEM "../not.xml"&gt;
+</pre></div></li></ul></div><div class="para">
+				Originally, these external references were intended as unique identifiers, but by many XML implementations, they are used for locating the data for the referenced element. This causes unwanted network traffic, and may disclose file system contents or otherwise unreachable network resources, so this functionality should be disabled.
+			</div><div class="para">
+				Depending on the XML library, external referenced might be processed not just when parsing XML, but also when generating it.
+			</div></div></div><ul class="docnav"><li class="previous"><a accesskey="p" href="ch09s03.html"><strong>Prev</strong>9.3. Library support for deserialization</a></li><li class="up"><a accesskey="u" href="#"><strong>Up</strong></a></li><li class="home"><a accesskey="h" href="index.html"><strong>Home</strong></a></li><li class="next"><a accesskey="n" href="sect-Defensive_Coding-Tasks-Serialization-XML-Entities.html"><strong>Next</strong>9.4.2. Entity expansion</a></li></ul></body></html>
\ No newline at end of file
diff --git a/public_html/en-US/Fedora_Security_Team/pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf b/public_html/en-US/Fedora_Security_Team/pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf
new file mode 100644
index 0000000..b14b49c
Binary files /dev/null and b/public_html/en-US/Fedora_Security_Team/pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf differ
diff --git a/public_html/en-US/Site_Statistics.html b/public_html/en-US/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/en-US/Site_Statistics.html
+++ b/public_html/en-US/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/en-US/opds-Community_Services_Infrastructure.xml b/public_html/en-US/opds-Community_Services_Infrastructure.xml
index 0030c5d..aeae0e9 100644
--- a/public_html/en-US/opds-Community_Services_Infrastructure.xml
+++ b/public_html/en-US/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/en-US/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:36</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/en-US/opds-Defensive_Coding.xml b/public_html/en-US/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..57f7b9e
--- /dev/null
+++ b/public_html/en-US/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/en-US/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/en-US/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:04</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>en-US</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/en-US/opds-Fedora.xml b/public_html/en-US/opds-Fedora.xml
index ce3e175..3305087 100644
--- a/public_html/en-US/opds-Fedora.xml
+++ b/public_html/en-US/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/en-US/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:36</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/en-US/opds-Fedora_Contributor_Documentation.xml b/public_html/en-US/opds-Fedora_Contributor_Documentation.xml
index 6b2879a..dc36ba3 100644
--- a/public_html/en-US/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/en-US/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/en-US/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:36</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/en-US/opds-Fedora_Core.xml b/public_html/en-US/opds-Fedora_Core.xml
index a5ae0ad..4b071fc 100644
--- a/public_html/en-US/opds-Fedora_Core.xml
+++ b/public_html/en-US/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/en-US/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:36</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/en-US/opds-Fedora_Draft_Documentation.xml b/public_html/en-US/opds-Fedora_Draft_Documentation.xml
index ec6bc5a..d9cec72 100644
--- a/public_html/en-US/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/en-US/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/en-US/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:36</updated>
+  <updated>2013-03-12T03:13:01</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/en-US/opds-Fedora_Security_Team.xml b/public_html/en-US/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..e981e19
--- /dev/null
+++ b/public_html/en-US/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/en-US/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/en-US/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:01</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>en-US</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/en-US/opds.xml b/public_html/en-US/opds.xml
index 6acb90f..bea53ca 100644
--- a/public_html/en-US/opds.xml
+++ b/public_html/en-US/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/en-US/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:36</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/en-US/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:36</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>en-US</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/en-US/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:36</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>en-US</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/en-US/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:36</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>en-US</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/en-US/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:36</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>en-US</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:36</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>en-US</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:01</updated>
+    <dc:language>en-US</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/en-US/toc.html b/public_html/en-US/toc.html
index 7091785..7bb8330 100644
--- a/public_html/en-US/toc.html
+++ b/public_html/en-US/toc.html
@@ -1474,6 +1474,23 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed">
+						<a class="type" href="Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='./Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+						<div id='Fedora_Security_Team..Defensive_Coding.types' class="types" onclick="work=0;">
+							<a class="type" href="./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+							<a class="type" href="./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+							<a class="type" href="./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+							<a class="type" href="./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/es-ES/Site_Statistics.html b/public_html/es-ES/Site_Statistics.html
index 4aac3e3..70312e3 100644
--- a/public_html/es-ES/Site_Statistics.html
+++ b/public_html/es-ES/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Idiomas totales: </b>45<br />
-	<b>Paquetes totales: </b>843
+	<b>Paquetes totales: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/es-ES/opds-Community_Services_Infrastructure.xml b/public_html/es-ES/opds-Community_Services_Infrastructure.xml
index 2de29ae..481f51b 100644
--- a/public_html/es-ES/opds-Community_Services_Infrastructure.xml
+++ b/public_html/es-ES/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/es-ES/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:36</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/es-ES/opds-Defensive_Coding.xml b/public_html/es-ES/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..cc6b200
--- /dev/null
+++ b/public_html/es-ES/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/es-ES/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/es-ES/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:04</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>es-ES</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/es-ES/opds-Fedora.xml b/public_html/es-ES/opds-Fedora.xml
index 5389e42..32a83a7 100644
--- a/public_html/es-ES/opds-Fedora.xml
+++ b/public_html/es-ES/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/es-ES/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:37</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/es-ES/opds-Fedora_15.xml b/public_html/es-ES/opds-Fedora_15.xml
index 85b34c5..e2d3ced 100644
--- a/public_html/es-ES/opds-Fedora_15.xml
+++ b/public_html/es-ES/opds-Fedora_15.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/es-ES/opds-Fedora_15.xml</id>
   <title>Fedora 15</title>
   <subtitle>Fedora 15</subtitle>
-  <updated>2013-03-11T21:17:37</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/es-ES/opds-Fedora_Contributor_Documentation.xml b/public_html/es-ES/opds-Fedora_Contributor_Documentation.xml
index e28403a..cdc09c4 100644
--- a/public_html/es-ES/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/es-ES/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/es-ES/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Documentación de Contribuyente</title>
   <subtitle>Fedora Documentación de Contribuyente</subtitle>
-  <updated>2013-03-11T21:17:37</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/es-ES/opds-Fedora_Core.xml b/public_html/es-ES/opds-Fedora_Core.xml
index ca20694..869382c 100644
--- a/public_html/es-ES/opds-Fedora_Core.xml
+++ b/public_html/es-ES/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/es-ES/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:37</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/es-ES/opds-Fedora_Draft_Documentation.xml b/public_html/es-ES/opds-Fedora_Draft_Documentation.xml
index 519cbf9..2d378bf 100644
--- a/public_html/es-ES/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/es-ES/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/es-ES/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:37</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/es-ES/opds-Fedora_Security_Team.xml b/public_html/es-ES/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..802dfd7
--- /dev/null
+++ b/public_html/es-ES/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/es-ES/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/es-ES/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:02</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>es-ES</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/es-ES/opds.xml b/public_html/es-ES/opds.xml
index d21d80c..97a73c1 100644
--- a/public_html/es-ES/opds.xml
+++ b/public_html/es-ES/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/es-ES/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:37</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/es-ES/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:36</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>es-ES</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/es-ES/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:37</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>es-ES</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora 15</title>
     <id>http://docs.fedoraproject.org/es-ES/Fedora_15/opds-Fedora_15.xml</id>
-    <updated>2013-03-11T21:17:37</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>es-ES</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_15.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Documentación de Contribuyente</title>
     <id>http://docs.fedoraproject.org/es-ES/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:37</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>es-ES</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -47,7 +47,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/es-ES/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:37</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>es-ES</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -55,9 +55,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/es-ES/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:37</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>es-ES</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/es-ES/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:02</updated>
+    <dc:language>es-ES</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/es-ES/toc.html b/public_html/es-ES/toc.html
index acc9546..15c0269 100644
--- a/public_html/es-ES/toc.html
+++ b/public_html/es-ES/toc.html
@@ -1785,6 +1785,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Aún sin traducir</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>El Menú de navegación superior necesita de JavaScript para poder funcionar.</p><p> Habilite JavaScript para permitir su funcionamiento.</p><p> Deshabilite CSS para poder visualizar las opciones de navegación sin tener habilitado JavaScript.</p>
 	</div>
diff --git a/public_html/fa-IR/Site_Statistics.html b/public_html/fa-IR/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/fa-IR/Site_Statistics.html
+++ b/public_html/fa-IR/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/fa-IR/opds-Community_Services_Infrastructure.xml b/public_html/fa-IR/opds-Community_Services_Infrastructure.xml
index 3774ae1..9c4fc4f 100644
--- a/public_html/fa-IR/opds-Community_Services_Infrastructure.xml
+++ b/public_html/fa-IR/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/fa-IR/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:37</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/fa-IR/opds-Defensive_Coding.xml b/public_html/fa-IR/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..fafa27e
--- /dev/null
+++ b/public_html/fa-IR/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/fa-IR/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/fa-IR/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:04</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>fa-IR</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/fa-IR/opds-Fedora.xml b/public_html/fa-IR/opds-Fedora.xml
index f23dd48..98752fb 100644
--- a/public_html/fa-IR/opds-Fedora.xml
+++ b/public_html/fa-IR/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/fa-IR/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:37</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/fa-IR/opds-Fedora_Contributor_Documentation.xml b/public_html/fa-IR/opds-Fedora_Contributor_Documentation.xml
index 9a8b53e..46d6cdb 100644
--- a/public_html/fa-IR/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/fa-IR/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/fa-IR/opds-Fedora_Contributor_Documentation.xml</id>
   <title>مستندات مشارکت کننده فدورا</title>
   <subtitle>مستندات مشارکت کننده فدورا</subtitle>
-  <updated>2013-03-11T21:17:37</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/fa-IR/opds-Fedora_Core.xml b/public_html/fa-IR/opds-Fedora_Core.xml
index 2fe8485..bf5165d 100644
--- a/public_html/fa-IR/opds-Fedora_Core.xml
+++ b/public_html/fa-IR/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/fa-IR/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:37</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/fa-IR/opds-Fedora_Draft_Documentation.xml b/public_html/fa-IR/opds-Fedora_Draft_Documentation.xml
index 69acd7e..dc26494 100644
--- a/public_html/fa-IR/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/fa-IR/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/fa-IR/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:37</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/fa-IR/opds-Fedora_Security_Team.xml b/public_html/fa-IR/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..a0ae56e
--- /dev/null
+++ b/public_html/fa-IR/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/fa-IR/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/fa-IR/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:02</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>fa-IR</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/fa-IR/opds.xml b/public_html/fa-IR/opds.xml
index e450177..31d31ce 100644
--- a/public_html/fa-IR/opds.xml
+++ b/public_html/fa-IR/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/fa-IR/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:37</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/fa-IR/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:37</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>fa-IR</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/fa-IR/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:37</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>fa-IR</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>مستندات مشارکت کننده فدورا</title>
     <id>http://docs.fedoraproject.org/fa-IR/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:37</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>fa-IR</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/fa-IR/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:37</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>fa-IR</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/fa-IR/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:37</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>fa-IR</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/fa-IR/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:02</updated>
+    <dc:language>fa-IR</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/fa-IR/toc.html b/public_html/fa-IR/toc.html
index 30878a9..baa4fed 100644
--- a/public_html/fa-IR/toc.html
+++ b/public_html/fa-IR/toc.html
@@ -1587,6 +1587,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/fi-FI/Site_Statistics.html b/public_html/fi-FI/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/fi-FI/Site_Statistics.html
+++ b/public_html/fi-FI/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/fi-FI/opds-Community_Services_Infrastructure.xml b/public_html/fi-FI/opds-Community_Services_Infrastructure.xml
index b3a343d..da022dc 100644
--- a/public_html/fi-FI/opds-Community_Services_Infrastructure.xml
+++ b/public_html/fi-FI/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/fi-FI/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:37</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/fi-FI/opds-Defensive_Coding.xml b/public_html/fi-FI/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..c0e4d95
--- /dev/null
+++ b/public_html/fi-FI/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/fi-FI/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/fi-FI/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:04</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>fi-FI</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/fi-FI/opds-Fedora.xml b/public_html/fi-FI/opds-Fedora.xml
index e43670f..edc61ef 100644
--- a/public_html/fi-FI/opds-Fedora.xml
+++ b/public_html/fi-FI/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/fi-FI/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:37</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/fi-FI/opds-Fedora_Contributor_Documentation.xml b/public_html/fi-FI/opds-Fedora_Contributor_Documentation.xml
index 78e323c..f07281b 100644
--- a/public_html/fi-FI/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/fi-FI/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/fi-FI/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:37</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/fi-FI/opds-Fedora_Core.xml b/public_html/fi-FI/opds-Fedora_Core.xml
index ea52148..adc63a5 100644
--- a/public_html/fi-FI/opds-Fedora_Core.xml
+++ b/public_html/fi-FI/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/fi-FI/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:37</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/fi-FI/opds-Fedora_Draft_Documentation.xml b/public_html/fi-FI/opds-Fedora_Draft_Documentation.xml
index 7d0b034..fc4f8ee 100644
--- a/public_html/fi-FI/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/fi-FI/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/fi-FI/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:37</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/fi-FI/opds-Fedora_Security_Team.xml b/public_html/fi-FI/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..bd98625
--- /dev/null
+++ b/public_html/fi-FI/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/fi-FI/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/fi-FI/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:02</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>fi-FI</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/fi-FI/opds.xml b/public_html/fi-FI/opds.xml
index 9af0a69..4954cc4 100644
--- a/public_html/fi-FI/opds.xml
+++ b/public_html/fi-FI/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/fi-FI/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:37</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/fi-FI/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:37</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>fi-FI</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/fi-FI/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:37</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>fi-FI</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/fi-FI/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:37</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>fi-FI</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/fi-FI/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:37</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>fi-FI</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/fi-FI/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:37</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>fi-FI</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/fi-FI/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:02</updated>
+    <dc:language>fi-FI</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/fi-FI/toc.html b/public_html/fi-FI/toc.html
index faae285..0ac17f9 100644
--- a/public_html/fi-FI/toc.html
+++ b/public_html/fi-FI/toc.html
@@ -1589,6 +1589,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/fr-FR/Site_Statistics.html b/public_html/fr-FR/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/fr-FR/Site_Statistics.html
+++ b/public_html/fr-FR/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/fr-FR/opds-Community_Services_Infrastructure.xml b/public_html/fr-FR/opds-Community_Services_Infrastructure.xml
index 355ebd1..59c9aa0 100644
--- a/public_html/fr-FR/opds-Community_Services_Infrastructure.xml
+++ b/public_html/fr-FR/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/fr-FR/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:37</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/fr-FR/opds-Defensive_Coding.xml b/public_html/fr-FR/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..c529ece
--- /dev/null
+++ b/public_html/fr-FR/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/fr-FR/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/fr-FR/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:04</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>fr-FR</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/fr-FR/opds-Fedora.xml b/public_html/fr-FR/opds-Fedora.xml
index 256b96f..2df6d9f 100644
--- a/public_html/fr-FR/opds-Fedora.xml
+++ b/public_html/fr-FR/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/fr-FR/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:38</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/fr-FR/opds-Fedora_Contributor_Documentation.xml b/public_html/fr-FR/opds-Fedora_Contributor_Documentation.xml
index 9bb1f20..a3fc4e1 100644
--- a/public_html/fr-FR/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/fr-FR/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/fr-FR/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:38</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/fr-FR/opds-Fedora_Core.xml b/public_html/fr-FR/opds-Fedora_Core.xml
index 9798ca6..6d9b50a 100644
--- a/public_html/fr-FR/opds-Fedora_Core.xml
+++ b/public_html/fr-FR/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/fr-FR/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:38</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/fr-FR/opds-Fedora_Draft_Documentation.xml b/public_html/fr-FR/opds-Fedora_Draft_Documentation.xml
index 99b8f2e..e3e96c3 100644
--- a/public_html/fr-FR/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/fr-FR/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/fr-FR/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:38</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/fr-FR/opds-Fedora_Security_Team.xml b/public_html/fr-FR/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..7a6bc92
--- /dev/null
+++ b/public_html/fr-FR/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/fr-FR/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/fr-FR/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:02</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>fr-FR</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/fr-FR/opds.xml b/public_html/fr-FR/opds.xml
index bb7a7e3..f874e58 100644
--- a/public_html/fr-FR/opds.xml
+++ b/public_html/fr-FR/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/fr-FR/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:38</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/fr-FR/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:37</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>fr-FR</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/fr-FR/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:38</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>fr-FR</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/fr-FR/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:38</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>fr-FR</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/fr-FR/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:38</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>fr-FR</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/fr-FR/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:38</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>fr-FR</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/fr-FR/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:02</updated>
+    <dc:language>fr-FR</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/fr-FR/toc.html b/public_html/fr-FR/toc.html
index e7aece7..6abec5b 100644
--- a/public_html/fr-FR/toc.html
+++ b/public_html/fr-FR/toc.html
@@ -1585,6 +1585,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/gu-IN/Site_Statistics.html b/public_html/gu-IN/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/gu-IN/Site_Statistics.html
+++ b/public_html/gu-IN/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/gu-IN/opds-Community_Services_Infrastructure.xml b/public_html/gu-IN/opds-Community_Services_Infrastructure.xml
index cb476cc..685a40b 100644
--- a/public_html/gu-IN/opds-Community_Services_Infrastructure.xml
+++ b/public_html/gu-IN/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/gu-IN/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:38</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/gu-IN/opds-Defensive_Coding.xml b/public_html/gu-IN/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..55f88c7
--- /dev/null
+++ b/public_html/gu-IN/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/gu-IN/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/gu-IN/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:05</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>gu-IN</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/gu-IN/opds-Fedora.xml b/public_html/gu-IN/opds-Fedora.xml
index 23dd4e0..20b3120 100644
--- a/public_html/gu-IN/opds-Fedora.xml
+++ b/public_html/gu-IN/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/gu-IN/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:38</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/gu-IN/opds-Fedora_Contributor_Documentation.xml b/public_html/gu-IN/opds-Fedora_Contributor_Documentation.xml
index 5aaf7c99..8dd0c0b 100644
--- a/public_html/gu-IN/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/gu-IN/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/gu-IN/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:38</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/gu-IN/opds-Fedora_Core.xml b/public_html/gu-IN/opds-Fedora_Core.xml
index 400e700..865b292 100644
--- a/public_html/gu-IN/opds-Fedora_Core.xml
+++ b/public_html/gu-IN/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/gu-IN/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:38</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/gu-IN/opds-Fedora_Draft_Documentation.xml b/public_html/gu-IN/opds-Fedora_Draft_Documentation.xml
index c9d4164..a9ecf40 100644
--- a/public_html/gu-IN/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/gu-IN/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/gu-IN/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:38</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/gu-IN/opds-Fedora_Security_Team.xml b/public_html/gu-IN/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..b5cf50b
--- /dev/null
+++ b/public_html/gu-IN/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/gu-IN/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/gu-IN/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:02</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>gu-IN</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/gu-IN/opds.xml b/public_html/gu-IN/opds.xml
index 91bd7d1..3cce19d 100644
--- a/public_html/gu-IN/opds.xml
+++ b/public_html/gu-IN/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/gu-IN/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:38</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/gu-IN/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:38</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>gu-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/gu-IN/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:38</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>gu-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/gu-IN/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:38</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>gu-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/gu-IN/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:38</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>gu-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/gu-IN/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:38</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>gu-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/gu-IN/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:02</updated>
+    <dc:language>gu-IN</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/gu-IN/toc.html b/public_html/gu-IN/toc.html
index 1514add..580a31d 100644
--- a/public_html/gu-IN/toc.html
+++ b/public_html/gu-IN/toc.html
@@ -1589,6 +1589,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/he-IL/Site_Statistics.html b/public_html/he-IL/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/he-IL/Site_Statistics.html
+++ b/public_html/he-IL/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/he-IL/opds-Community_Services_Infrastructure.xml b/public_html/he-IL/opds-Community_Services_Infrastructure.xml
index e77a004..63db2af 100644
--- a/public_html/he-IL/opds-Community_Services_Infrastructure.xml
+++ b/public_html/he-IL/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/he-IL/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:38</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/he-IL/opds-Defensive_Coding.xml b/public_html/he-IL/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..12a4c97
--- /dev/null
+++ b/public_html/he-IL/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/he-IL/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/he-IL/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:05</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>he-IL</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/he-IL/opds-Fedora.xml b/public_html/he-IL/opds-Fedora.xml
index 1aa75d7..3af4d99 100644
--- a/public_html/he-IL/opds-Fedora.xml
+++ b/public_html/he-IL/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/he-IL/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:38</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/he-IL/opds-Fedora_Contributor_Documentation.xml b/public_html/he-IL/opds-Fedora_Contributor_Documentation.xml
index 3540e53..987c689 100644
--- a/public_html/he-IL/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/he-IL/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/he-IL/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:38</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/he-IL/opds-Fedora_Core.xml b/public_html/he-IL/opds-Fedora_Core.xml
index 6c8de4b..85c5d8c 100644
--- a/public_html/he-IL/opds-Fedora_Core.xml
+++ b/public_html/he-IL/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/he-IL/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:38</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/he-IL/opds-Fedora_Draft_Documentation.xml b/public_html/he-IL/opds-Fedora_Draft_Documentation.xml
index e8723ad..73768b2 100644
--- a/public_html/he-IL/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/he-IL/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/he-IL/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:38</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/he-IL/opds-Fedora_Security_Team.xml b/public_html/he-IL/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..88d6f32
--- /dev/null
+++ b/public_html/he-IL/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/he-IL/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/he-IL/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:02</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>he-IL</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/he-IL/opds.xml b/public_html/he-IL/opds.xml
index 18af405..eec5940 100644
--- a/public_html/he-IL/opds.xml
+++ b/public_html/he-IL/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/he-IL/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:38</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/he-IL/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:38</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>he-IL</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/he-IL/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:38</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>he-IL</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/he-IL/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:38</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>he-IL</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/he-IL/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:38</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>he-IL</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/he-IL/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:38</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>he-IL</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/he-IL/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:02</updated>
+    <dc:language>he-IL</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/he-IL/toc.html b/public_html/he-IL/toc.html
index 3469c63..683bfeb 100644
--- a/public_html/he-IL/toc.html
+++ b/public_html/he-IL/toc.html
@@ -1589,6 +1589,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/hi-IN/Site_Statistics.html b/public_html/hi-IN/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/hi-IN/Site_Statistics.html
+++ b/public_html/hi-IN/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/hi-IN/opds-Community_Services_Infrastructure.xml b/public_html/hi-IN/opds-Community_Services_Infrastructure.xml
index 76da575..61e84a9 100644
--- a/public_html/hi-IN/opds-Community_Services_Infrastructure.xml
+++ b/public_html/hi-IN/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/hi-IN/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:38</updated>
+  <updated>2013-03-12T03:13:02</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/hi-IN/opds-Defensive_Coding.xml b/public_html/hi-IN/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..fc90860
--- /dev/null
+++ b/public_html/hi-IN/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/hi-IN/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/hi-IN/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:05</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>hi-IN</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/hi-IN/opds-Fedora.xml b/public_html/hi-IN/opds-Fedora.xml
index e440b9a..32f578a 100644
--- a/public_html/hi-IN/opds-Fedora.xml
+++ b/public_html/hi-IN/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/hi-IN/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:39</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/hi-IN/opds-Fedora_Contributor_Documentation.xml b/public_html/hi-IN/opds-Fedora_Contributor_Documentation.xml
index cbad5bb..3fe0f43 100644
--- a/public_html/hi-IN/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/hi-IN/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/hi-IN/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:39</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/hi-IN/opds-Fedora_Core.xml b/public_html/hi-IN/opds-Fedora_Core.xml
index 2ce88b2..aa50dc9 100644
--- a/public_html/hi-IN/opds-Fedora_Core.xml
+++ b/public_html/hi-IN/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/hi-IN/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:39</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/hi-IN/opds-Fedora_Draft_Documentation.xml b/public_html/hi-IN/opds-Fedora_Draft_Documentation.xml
index 7f31124..507cfd4 100644
--- a/public_html/hi-IN/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/hi-IN/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/hi-IN/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:39</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/hi-IN/opds-Fedora_Security_Team.xml b/public_html/hi-IN/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..973f9de
--- /dev/null
+++ b/public_html/hi-IN/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/hi-IN/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/hi-IN/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:03</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>hi-IN</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/hi-IN/opds.xml b/public_html/hi-IN/opds.xml
index e1b4ac6..8080937 100644
--- a/public_html/hi-IN/opds.xml
+++ b/public_html/hi-IN/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/hi-IN/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:39</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/hi-IN/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:38</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>hi-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/hi-IN/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:39</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>hi-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/hi-IN/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:39</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>hi-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/hi-IN/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:39</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>hi-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/hi-IN/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:39</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>hi-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/hi-IN/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:03</updated>
+    <dc:language>hi-IN</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/hi-IN/toc.html b/public_html/hi-IN/toc.html
index 5592fcc..53692ec 100644
--- a/public_html/hi-IN/toc.html
+++ b/public_html/hi-IN/toc.html
@@ -1589,6 +1589,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/hu-HU/Site_Statistics.html b/public_html/hu-HU/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/hu-HU/Site_Statistics.html
+++ b/public_html/hu-HU/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/hu-HU/opds-Community_Services_Infrastructure.xml b/public_html/hu-HU/opds-Community_Services_Infrastructure.xml
index aea03dc..416a820 100644
--- a/public_html/hu-HU/opds-Community_Services_Infrastructure.xml
+++ b/public_html/hu-HU/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/hu-HU/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:39</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/hu-HU/opds-Defensive_Coding.xml b/public_html/hu-HU/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..b0c2f47
--- /dev/null
+++ b/public_html/hu-HU/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/hu-HU/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/hu-HU/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:05</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>hu-HU</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/hu-HU/opds-Fedora.xml b/public_html/hu-HU/opds-Fedora.xml
index f3ab384..5d4111e 100644
--- a/public_html/hu-HU/opds-Fedora.xml
+++ b/public_html/hu-HU/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/hu-HU/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:39</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/hu-HU/opds-Fedora_Contributor_Documentation.xml b/public_html/hu-HU/opds-Fedora_Contributor_Documentation.xml
index d14ef22..c30076b 100644
--- a/public_html/hu-HU/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/hu-HU/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/hu-HU/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:39</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/hu-HU/opds-Fedora_Core.xml b/public_html/hu-HU/opds-Fedora_Core.xml
index 1d9b5a9..17b7847 100644
--- a/public_html/hu-HU/opds-Fedora_Core.xml
+++ b/public_html/hu-HU/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/hu-HU/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:39</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/hu-HU/opds-Fedora_Draft_Documentation.xml b/public_html/hu-HU/opds-Fedora_Draft_Documentation.xml
index fd69b78..caac4ff 100644
--- a/public_html/hu-HU/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/hu-HU/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/hu-HU/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:39</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/hu-HU/opds-Fedora_Security_Team.xml b/public_html/hu-HU/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..61c9355
--- /dev/null
+++ b/public_html/hu-HU/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/hu-HU/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/hu-HU/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:03</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>hu-HU</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/hu-HU/opds.xml b/public_html/hu-HU/opds.xml
index 5b97976..4263b24 100644
--- a/public_html/hu-HU/opds.xml
+++ b/public_html/hu-HU/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/hu-HU/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:39</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/hu-HU/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:39</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>hu-HU</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/hu-HU/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:39</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>hu-HU</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/hu-HU/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:39</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>hu-HU</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/hu-HU/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:39</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>hu-HU</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/hu-HU/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:39</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>hu-HU</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/hu-HU/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:03</updated>
+    <dc:language>hu-HU</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/hu-HU/toc.html b/public_html/hu-HU/toc.html
index dfecc07..7558a3c 100644
--- a/public_html/hu-HU/toc.html
+++ b/public_html/hu-HU/toc.html
@@ -1589,6 +1589,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/ia/Site_Statistics.html b/public_html/ia/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/ia/Site_Statistics.html
+++ b/public_html/ia/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/ia/opds-Community_Services_Infrastructure.xml b/public_html/ia/opds-Community_Services_Infrastructure.xml
index 4ea2e1d..b0ab55c 100644
--- a/public_html/ia/opds-Community_Services_Infrastructure.xml
+++ b/public_html/ia/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ia/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:39</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ia/opds-Defensive_Coding.xml b/public_html/ia/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..717c6b2
--- /dev/null
+++ b/public_html/ia/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/ia/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/ia/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:05</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>ia</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/ia/opds-Fedora.xml b/public_html/ia/opds-Fedora.xml
index fa81f35..b96ae4d 100644
--- a/public_html/ia/opds-Fedora.xml
+++ b/public_html/ia/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ia/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:39</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ia/opds-Fedora_Contributor_Documentation.xml b/public_html/ia/opds-Fedora_Contributor_Documentation.xml
index 08ea4ae..890acd7 100644
--- a/public_html/ia/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/ia/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ia/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:39</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ia/opds-Fedora_Core.xml b/public_html/ia/opds-Fedora_Core.xml
index 985857a..a49667c 100644
--- a/public_html/ia/opds-Fedora_Core.xml
+++ b/public_html/ia/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ia/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:39</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ia/opds-Fedora_Draft_Documentation.xml b/public_html/ia/opds-Fedora_Draft_Documentation.xml
index e649821..a0732a9 100644
--- a/public_html/ia/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/ia/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ia/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:39</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ia/opds-Fedora_Security_Team.xml b/public_html/ia/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..41250e5
--- /dev/null
+++ b/public_html/ia/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/ia/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/ia/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:03</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>ia</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/ia/opds.xml b/public_html/ia/opds.xml
index a661aaa..f3d06bd 100644
--- a/public_html/ia/opds.xml
+++ b/public_html/ia/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/ia/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:39</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/ia/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:39</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>ia</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/ia/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:39</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>ia</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/ia/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:39</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>ia</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/ia/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:39</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>ia</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/ia/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:39</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>ia</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/ia/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:03</updated>
+    <dc:language>ia</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/ia/toc.html b/public_html/ia/toc.html
index ad1511d..ad0bb0c 100644
--- a/public_html/ia/toc.html
+++ b/public_html/ia/toc.html
@@ -1589,6 +1589,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/id-ID/Site_Statistics.html b/public_html/id-ID/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/id-ID/Site_Statistics.html
+++ b/public_html/id-ID/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/id-ID/opds-Community_Services_Infrastructure.xml b/public_html/id-ID/opds-Community_Services_Infrastructure.xml
index 0b1a0a9..a2418ad 100644
--- a/public_html/id-ID/opds-Community_Services_Infrastructure.xml
+++ b/public_html/id-ID/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/id-ID/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:39</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/id-ID/opds-Defensive_Coding.xml b/public_html/id-ID/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..79bae15
--- /dev/null
+++ b/public_html/id-ID/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/id-ID/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/id-ID/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:05</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>id-ID</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/id-ID/opds-Fedora.xml b/public_html/id-ID/opds-Fedora.xml
index 39147f5..28745d3 100644
--- a/public_html/id-ID/opds-Fedora.xml
+++ b/public_html/id-ID/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/id-ID/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:39</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/id-ID/opds-Fedora_Contributor_Documentation.xml b/public_html/id-ID/opds-Fedora_Contributor_Documentation.xml
index 4a99178..c43b96a 100644
--- a/public_html/id-ID/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/id-ID/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/id-ID/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:40</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/id-ID/opds-Fedora_Core.xml b/public_html/id-ID/opds-Fedora_Core.xml
index b90350c..9996896 100644
--- a/public_html/id-ID/opds-Fedora_Core.xml
+++ b/public_html/id-ID/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/id-ID/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:40</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/id-ID/opds-Fedora_Draft_Documentation.xml b/public_html/id-ID/opds-Fedora_Draft_Documentation.xml
index 2a73aa4..ea615d6 100644
--- a/public_html/id-ID/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/id-ID/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/id-ID/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:40</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/id-ID/opds-Fedora_Security_Team.xml b/public_html/id-ID/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..5243dd5
--- /dev/null
+++ b/public_html/id-ID/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/id-ID/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/id-ID/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:03</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>id-ID</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/id-ID/opds.xml b/public_html/id-ID/opds.xml
index 085c74b..6ae01f1 100644
--- a/public_html/id-ID/opds.xml
+++ b/public_html/id-ID/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/id-ID/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:40</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/id-ID/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:39</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>id-ID</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/id-ID/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:40</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>id-ID</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/id-ID/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:40</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>id-ID</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/id-ID/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:40</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>id-ID</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/id-ID/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:40</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>id-ID</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/id-ID/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:03</updated>
+    <dc:language>id-ID</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/id-ID/toc.html b/public_html/id-ID/toc.html
index 3f8c38e..cf369b6 100644
--- a/public_html/id-ID/toc.html
+++ b/public_html/id-ID/toc.html
@@ -1589,6 +1589,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/it-IT/Site_Statistics.html b/public_html/it-IT/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/it-IT/Site_Statistics.html
+++ b/public_html/it-IT/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/it-IT/opds-Community_Services_Infrastructure.xml b/public_html/it-IT/opds-Community_Services_Infrastructure.xml
index 7b76661..79f3fcd 100644
--- a/public_html/it-IT/opds-Community_Services_Infrastructure.xml
+++ b/public_html/it-IT/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/it-IT/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:40</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/it-IT/opds-Defensive_Coding.xml b/public_html/it-IT/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..349c8aa
--- /dev/null
+++ b/public_html/it-IT/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/it-IT/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/it-IT/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:06</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>it-IT</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/it-IT/opds-Fedora.xml b/public_html/it-IT/opds-Fedora.xml
index 1ac57db..f531328 100644
--- a/public_html/it-IT/opds-Fedora.xml
+++ b/public_html/it-IT/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/it-IT/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:40</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/it-IT/opds-Fedora_Contributor_Documentation.xml b/public_html/it-IT/opds-Fedora_Contributor_Documentation.xml
index ed03abd..41f02aa 100644
--- a/public_html/it-IT/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/it-IT/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/it-IT/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Documentazione Collaboratori Fedora</title>
   <subtitle>Documentazione Collaboratori Fedora</subtitle>
-  <updated>2013-03-11T21:17:40</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/it-IT/opds-Fedora_Core.xml b/public_html/it-IT/opds-Fedora_Core.xml
index 7a565ff..a327a80 100644
--- a/public_html/it-IT/opds-Fedora_Core.xml
+++ b/public_html/it-IT/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/it-IT/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:40</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/it-IT/opds-Fedora_Draft_Documentation.xml b/public_html/it-IT/opds-Fedora_Draft_Documentation.xml
index 72fa2ae..7ee2857 100644
--- a/public_html/it-IT/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/it-IT/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/it-IT/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:40</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/it-IT/opds-Fedora_Security_Team.xml b/public_html/it-IT/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..155abad
--- /dev/null
+++ b/public_html/it-IT/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/it-IT/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/it-IT/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:03</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>it-IT</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/it-IT/opds.xml b/public_html/it-IT/opds.xml
index 741b296..0fdf009 100644
--- a/public_html/it-IT/opds.xml
+++ b/public_html/it-IT/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/it-IT/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:40</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/it-IT/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:40</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>it-IT</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/it-IT/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:40</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>it-IT</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Documentazione Collaboratori Fedora</title>
     <id>http://docs.fedoraproject.org/it-IT/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:40</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>it-IT</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/it-IT/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:40</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>it-IT</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/it-IT/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:40</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>it-IT</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/it-IT/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:03</updated>
+    <dc:language>it-IT</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/it-IT/toc.html b/public_html/it-IT/toc.html
index cde7d98..08bc697 100644
--- a/public_html/it-IT/toc.html
+++ b/public_html/it-IT/toc.html
@@ -1777,6 +1777,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/ja-JP/Site_Statistics.html b/public_html/ja-JP/Site_Statistics.html
index 6572299..1bb85a1 100644
--- a/public_html/ja-JP/Site_Statistics.html
+++ b/public_html/ja-JP/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>言語数の合計: </b>45<br />
-	<b>パッケージ数の合計: </b>843
+	<b>パッケージ数の合計: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/ja-JP/opds-Community_Services_Infrastructure.xml b/public_html/ja-JP/opds-Community_Services_Infrastructure.xml
index f3edf7a..a62ea2c 100644
--- a/public_html/ja-JP/opds-Community_Services_Infrastructure.xml
+++ b/public_html/ja-JP/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ja-JP/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:40</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ja-JP/opds-Defensive_Coding.xml b/public_html/ja-JP/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..48d1717
--- /dev/null
+++ b/public_html/ja-JP/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/ja-JP/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/ja-JP/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:06</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>ja-JP</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/ja-JP/opds-Fedora.xml b/public_html/ja-JP/opds-Fedora.xml
index c53529a..51e4d24 100644
--- a/public_html/ja-JP/opds-Fedora.xml
+++ b/public_html/ja-JP/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ja-JP/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:40</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ja-JP/opds-Fedora_Contributor_Documentation.xml b/public_html/ja-JP/opds-Fedora_Contributor_Documentation.xml
index 8427c1a..0ef3d88 100644
--- a/public_html/ja-JP/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/ja-JP/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ja-JP/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora コントリビュータ用ドキュメント</title>
   <subtitle>Fedora コントリビュータ用ドキュメント</subtitle>
-  <updated>2013-03-11T21:17:40</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ja-JP/opds-Fedora_Core.xml b/public_html/ja-JP/opds-Fedora_Core.xml
index 4847def..7810422 100644
--- a/public_html/ja-JP/opds-Fedora_Core.xml
+++ b/public_html/ja-JP/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ja-JP/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:40</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ja-JP/opds-Fedora_Draft_Documentation.xml b/public_html/ja-JP/opds-Fedora_Draft_Documentation.xml
index cddef24..a18e708 100644
--- a/public_html/ja-JP/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/ja-JP/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ja-JP/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:40</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ja-JP/opds-Fedora_Security_Team.xml b/public_html/ja-JP/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..5a3f0e8
--- /dev/null
+++ b/public_html/ja-JP/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/ja-JP/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/ja-JP/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:03</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>ja-JP</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/ja-JP/opds.xml b/public_html/ja-JP/opds.xml
index 01d341d..46b2ba7 100644
--- a/public_html/ja-JP/opds.xml
+++ b/public_html/ja-JP/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/ja-JP/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:40</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/ja-JP/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:40</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>ja-JP</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/ja-JP/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:40</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>ja-JP</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora コントリビュータ用ドキュメント</title>
     <id>http://docs.fedoraproject.org/ja-JP/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:40</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>ja-JP</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/ja-JP/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:40</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>ja-JP</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/ja-JP/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:40</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>ja-JP</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/ja-JP/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:03</updated>
+    <dc:language>ja-JP</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/ja-JP/toc.html b/public_html/ja-JP/toc.html
index 1d1b0a4..4b5d265 100644
--- a/public_html/ja-JP/toc.html
+++ b/public_html/ja-JP/toc.html
@@ -1625,6 +1625,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">未翻訳</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>上記のナビゲーションメニューが正しく動作するには JavaScript が必要になります。</p> <p>JavaScript を有効にするとナビゲーションメニューが動作するようになります。</p> <p>JavaScript を有効にすることなくナビゲーションオプションを表示させる場合は CSS を無効にしてください。</p>
 	</div>
diff --git a/public_html/kn-IN/Site_Statistics.html b/public_html/kn-IN/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/kn-IN/Site_Statistics.html
+++ b/public_html/kn-IN/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/kn-IN/opds-Community_Services_Infrastructure.xml b/public_html/kn-IN/opds-Community_Services_Infrastructure.xml
index 7cd508a..b6aa7ad 100644
--- a/public_html/kn-IN/opds-Community_Services_Infrastructure.xml
+++ b/public_html/kn-IN/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/kn-IN/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:40</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/kn-IN/opds-Defensive_Coding.xml b/public_html/kn-IN/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..b20c10c
--- /dev/null
+++ b/public_html/kn-IN/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/kn-IN/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/kn-IN/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:06</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>kn-IN</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/kn-IN/opds-Fedora.xml b/public_html/kn-IN/opds-Fedora.xml
index 91fc9b0..bf657f0 100644
--- a/public_html/kn-IN/opds-Fedora.xml
+++ b/public_html/kn-IN/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/kn-IN/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:40</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/kn-IN/opds-Fedora_Contributor_Documentation.xml b/public_html/kn-IN/opds-Fedora_Contributor_Documentation.xml
index 3915265..1037101 100644
--- a/public_html/kn-IN/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/kn-IN/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/kn-IN/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:41</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/kn-IN/opds-Fedora_Core.xml b/public_html/kn-IN/opds-Fedora_Core.xml
index 1565e61..8dbe06f 100644
--- a/public_html/kn-IN/opds-Fedora_Core.xml
+++ b/public_html/kn-IN/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/kn-IN/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:41</updated>
+  <updated>2013-03-12T03:13:03</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/kn-IN/opds-Fedora_Draft_Documentation.xml b/public_html/kn-IN/opds-Fedora_Draft_Documentation.xml
index 6f3cdfa..eefdd69 100644
--- a/public_html/kn-IN/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/kn-IN/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/kn-IN/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:41</updated>
+  <updated>2013-03-12T03:13:04</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/kn-IN/opds-Fedora_Security_Team.xml b/public_html/kn-IN/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..03389b4
--- /dev/null
+++ b/public_html/kn-IN/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/kn-IN/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/kn-IN/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:04</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>kn-IN</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/kn-IN/opds.xml b/public_html/kn-IN/opds.xml
index 7d0c56b..110a25f 100644
--- a/public_html/kn-IN/opds.xml
+++ b/public_html/kn-IN/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/kn-IN/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:41</updated>
+  <updated>2013-03-12T03:13:04</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/kn-IN/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:40</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>kn-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/kn-IN/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:41</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>kn-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/kn-IN/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:41</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>kn-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/kn-IN/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:41</updated>
+    <updated>2013-03-12T03:13:04</updated>
     <dc:language>kn-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/kn-IN/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:41</updated>
+    <updated>2013-03-12T03:13:04</updated>
     <dc:language>kn-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/kn-IN/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:04</updated>
+    <dc:language>kn-IN</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/kn-IN/toc.html b/public_html/kn-IN/toc.html
index 7a2e998..6b1f3c9 100644
--- a/public_html/kn-IN/toc.html
+++ b/public_html/kn-IN/toc.html
@@ -1589,6 +1589,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/ko-KR/Site_Statistics.html b/public_html/ko-KR/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/ko-KR/Site_Statistics.html
+++ b/public_html/ko-KR/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/ko-KR/opds-Community_Services_Infrastructure.xml b/public_html/ko-KR/opds-Community_Services_Infrastructure.xml
index 3776415..3d962ad 100644
--- a/public_html/ko-KR/opds-Community_Services_Infrastructure.xml
+++ b/public_html/ko-KR/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ko-KR/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:41</updated>
+  <updated>2013-03-12T03:13:04</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ko-KR/opds-Defensive_Coding.xml b/public_html/ko-KR/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..aeb5a77
--- /dev/null
+++ b/public_html/ko-KR/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/ko-KR/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/ko-KR/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:06</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>ko-KR</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/ko-KR/opds-Fedora.xml b/public_html/ko-KR/opds-Fedora.xml
index 5dd8b7a..6769cef 100644
--- a/public_html/ko-KR/opds-Fedora.xml
+++ b/public_html/ko-KR/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ko-KR/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:41</updated>
+  <updated>2013-03-12T03:13:04</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ko-KR/opds-Fedora_Contributor_Documentation.xml b/public_html/ko-KR/opds-Fedora_Contributor_Documentation.xml
index b76b351..f6e6e51 100644
--- a/public_html/ko-KR/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/ko-KR/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ko-KR/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:41</updated>
+  <updated>2013-03-12T03:13:04</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ko-KR/opds-Fedora_Core.xml b/public_html/ko-KR/opds-Fedora_Core.xml
index 3cf86df..7436f18 100644
--- a/public_html/ko-KR/opds-Fedora_Core.xml
+++ b/public_html/ko-KR/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ko-KR/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:41</updated>
+  <updated>2013-03-12T03:13:04</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ko-KR/opds-Fedora_Draft_Documentation.xml b/public_html/ko-KR/opds-Fedora_Draft_Documentation.xml
index 95feec1..6f7a790 100644
--- a/public_html/ko-KR/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/ko-KR/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ko-KR/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:41</updated>
+  <updated>2013-03-12T03:13:04</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ko-KR/opds-Fedora_Security_Team.xml b/public_html/ko-KR/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..423c662
--- /dev/null
+++ b/public_html/ko-KR/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/ko-KR/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/ko-KR/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:04</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>ko-KR</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/ko-KR/opds.xml b/public_html/ko-KR/opds.xml
index 459095f..4b4f5d3 100644
--- a/public_html/ko-KR/opds.xml
+++ b/public_html/ko-KR/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/ko-KR/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:41</updated>
+  <updated>2013-03-12T03:13:04</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/ko-KR/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:41</updated>
+    <updated>2013-03-12T03:13:04</updated>
     <dc:language>ko-KR</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/ko-KR/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:41</updated>
+    <updated>2013-03-12T03:13:04</updated>
     <dc:language>ko-KR</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/ko-KR/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:41</updated>
+    <updated>2013-03-12T03:13:04</updated>
     <dc:language>ko-KR</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/ko-KR/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:41</updated>
+    <updated>2013-03-12T03:13:04</updated>
     <dc:language>ko-KR</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/ko-KR/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:41</updated>
+    <updated>2013-03-12T03:13:04</updated>
     <dc:language>ko-KR</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/ko-KR/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:04</updated>
+    <dc:language>ko-KR</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/ko-KR/toc.html b/public_html/ko-KR/toc.html
index 0c1cdc8..b2fe3e5 100644
--- a/public_html/ko-KR/toc.html
+++ b/public_html/ko-KR/toc.html
@@ -1589,6 +1589,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/ml-IN/Site_Statistics.html b/public_html/ml-IN/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/ml-IN/Site_Statistics.html
+++ b/public_html/ml-IN/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/ml-IN/opds-Community_Services_Infrastructure.xml b/public_html/ml-IN/opds-Community_Services_Infrastructure.xml
index 529e5f0..2fad656 100644
--- a/public_html/ml-IN/opds-Community_Services_Infrastructure.xml
+++ b/public_html/ml-IN/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ml-IN/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:41</updated>
+  <updated>2013-03-12T03:13:04</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ml-IN/opds-Defensive_Coding.xml b/public_html/ml-IN/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..b2a597b
--- /dev/null
+++ b/public_html/ml-IN/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/ml-IN/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/ml-IN/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:06</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>ml-IN</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/ml-IN/opds-Fedora.xml b/public_html/ml-IN/opds-Fedora.xml
index b1b7cfe..e5566ea 100644
--- a/public_html/ml-IN/opds-Fedora.xml
+++ b/public_html/ml-IN/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ml-IN/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:41</updated>
+  <updated>2013-03-12T03:13:04</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ml-IN/opds-Fedora_Contributor_Documentation.xml b/public_html/ml-IN/opds-Fedora_Contributor_Documentation.xml
index bca0cb7..d1f801a 100644
--- a/public_html/ml-IN/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/ml-IN/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ml-IN/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:41</updated>
+  <updated>2013-03-12T03:13:04</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ml-IN/opds-Fedora_Core.xml b/public_html/ml-IN/opds-Fedora_Core.xml
index 8fcef00..33e70d4 100644
--- a/public_html/ml-IN/opds-Fedora_Core.xml
+++ b/public_html/ml-IN/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ml-IN/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:41</updated>
+  <updated>2013-03-12T03:13:04</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ml-IN/opds-Fedora_Draft_Documentation.xml b/public_html/ml-IN/opds-Fedora_Draft_Documentation.xml
index 3252e83..dcaa728 100644
--- a/public_html/ml-IN/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/ml-IN/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ml-IN/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:41</updated>
+  <updated>2013-03-12T03:13:04</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ml-IN/opds-Fedora_Security_Team.xml b/public_html/ml-IN/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..d49b964
--- /dev/null
+++ b/public_html/ml-IN/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/ml-IN/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/ml-IN/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:04</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>ml-IN</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/ml-IN/opds.xml b/public_html/ml-IN/opds.xml
index 906bbee..f565ac6 100644
--- a/public_html/ml-IN/opds.xml
+++ b/public_html/ml-IN/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/ml-IN/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:41</updated>
+  <updated>2013-03-12T03:13:04</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/ml-IN/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:41</updated>
+    <updated>2013-03-12T03:13:04</updated>
     <dc:language>ml-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/ml-IN/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:41</updated>
+    <updated>2013-03-12T03:13:04</updated>
     <dc:language>ml-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/ml-IN/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:41</updated>
+    <updated>2013-03-12T03:13:04</updated>
     <dc:language>ml-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/ml-IN/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:41</updated>
+    <updated>2013-03-12T03:13:04</updated>
     <dc:language>ml-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/ml-IN/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:41</updated>
+    <updated>2013-03-12T03:13:04</updated>
     <dc:language>ml-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/ml-IN/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:04</updated>
+    <dc:language>ml-IN</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/ml-IN/toc.html b/public_html/ml-IN/toc.html
index 20c5a90..064f2e9 100644
--- a/public_html/ml-IN/toc.html
+++ b/public_html/ml-IN/toc.html
@@ -1589,6 +1589,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/mr-IN/Site_Statistics.html b/public_html/mr-IN/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/mr-IN/Site_Statistics.html
+++ b/public_html/mr-IN/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/mr-IN/opds-Community_Services_Infrastructure.xml b/public_html/mr-IN/opds-Community_Services_Infrastructure.xml
index 498c0bc..2bfe6f2 100644
--- a/public_html/mr-IN/opds-Community_Services_Infrastructure.xml
+++ b/public_html/mr-IN/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/mr-IN/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:41</updated>
+  <updated>2013-03-12T03:13:04</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/mr-IN/opds-Defensive_Coding.xml b/public_html/mr-IN/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..522f411
--- /dev/null
+++ b/public_html/mr-IN/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/mr-IN/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/mr-IN/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:06</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>mr-IN</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/mr-IN/opds-Fedora.xml b/public_html/mr-IN/opds-Fedora.xml
index 0ae12b7..c2683d3 100644
--- a/public_html/mr-IN/opds-Fedora.xml
+++ b/public_html/mr-IN/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/mr-IN/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:41</updated>
+  <updated>2013-03-12T03:13:04</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/mr-IN/opds-Fedora_Contributor_Documentation.xml b/public_html/mr-IN/opds-Fedora_Contributor_Documentation.xml
index eccdec1b7..dbc681c 100644
--- a/public_html/mr-IN/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/mr-IN/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/mr-IN/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:41</updated>
+  <updated>2013-03-12T03:13:04</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/mr-IN/opds-Fedora_Core.xml b/public_html/mr-IN/opds-Fedora_Core.xml
index 6a9255a..418d165 100644
--- a/public_html/mr-IN/opds-Fedora_Core.xml
+++ b/public_html/mr-IN/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/mr-IN/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:42</updated>
+  <updated>2013-03-12T03:13:04</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/mr-IN/opds-Fedora_Draft_Documentation.xml b/public_html/mr-IN/opds-Fedora_Draft_Documentation.xml
index e142415..85a2f3b 100644
--- a/public_html/mr-IN/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/mr-IN/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/mr-IN/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:42</updated>
+  <updated>2013-03-12T03:13:04</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/mr-IN/opds-Fedora_Security_Team.xml b/public_html/mr-IN/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..e4c191d
--- /dev/null
+++ b/public_html/mr-IN/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/mr-IN/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/mr-IN/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:04</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>mr-IN</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/mr-IN/opds.xml b/public_html/mr-IN/opds.xml
index 354de86..1827101 100644
--- a/public_html/mr-IN/opds.xml
+++ b/public_html/mr-IN/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/mr-IN/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:42</updated>
+  <updated>2013-03-12T03:13:04</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/mr-IN/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:41</updated>
+    <updated>2013-03-12T03:13:04</updated>
     <dc:language>mr-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/mr-IN/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:41</updated>
+    <updated>2013-03-12T03:13:04</updated>
     <dc:language>mr-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/mr-IN/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:41</updated>
+    <updated>2013-03-12T03:13:04</updated>
     <dc:language>mr-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/mr-IN/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:42</updated>
+    <updated>2013-03-12T03:13:04</updated>
     <dc:language>mr-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/mr-IN/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:42</updated>
+    <updated>2013-03-12T03:13:04</updated>
     <dc:language>mr-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/mr-IN/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:04</updated>
+    <dc:language>mr-IN</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/mr-IN/toc.html b/public_html/mr-IN/toc.html
index 742a137..b14921c 100644
--- a/public_html/mr-IN/toc.html
+++ b/public_html/mr-IN/toc.html
@@ -1589,6 +1589,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/nb-NO/Site_Statistics.html b/public_html/nb-NO/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/nb-NO/Site_Statistics.html
+++ b/public_html/nb-NO/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/nb-NO/opds-Community_Services_Infrastructure.xml b/public_html/nb-NO/opds-Community_Services_Infrastructure.xml
index eb8ce3d..c151c4e 100644
--- a/public_html/nb-NO/opds-Community_Services_Infrastructure.xml
+++ b/public_html/nb-NO/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/nb-NO/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:42</updated>
+  <updated>2013-03-12T03:13:04</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/nb-NO/opds-Defensive_Coding.xml b/public_html/nb-NO/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..f68af3e
--- /dev/null
+++ b/public_html/nb-NO/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/nb-NO/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/nb-NO/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:07</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>nb-NO</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/nb-NO/opds-Fedora.xml b/public_html/nb-NO/opds-Fedora.xml
index 9dda69b..ac858df 100644
--- a/public_html/nb-NO/opds-Fedora.xml
+++ b/public_html/nb-NO/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/nb-NO/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:42</updated>
+  <updated>2013-03-12T03:13:04</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/nb-NO/opds-Fedora_Contributor_Documentation.xml b/public_html/nb-NO/opds-Fedora_Contributor_Documentation.xml
index ad351ec..b5fb52b 100644
--- a/public_html/nb-NO/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/nb-NO/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/nb-NO/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:42</updated>
+  <updated>2013-03-12T03:13:04</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/nb-NO/opds-Fedora_Core.xml b/public_html/nb-NO/opds-Fedora_Core.xml
index 2d072b8..ad9ba6f 100644
--- a/public_html/nb-NO/opds-Fedora_Core.xml
+++ b/public_html/nb-NO/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/nb-NO/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:42</updated>
+  <updated>2013-03-12T03:13:04</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/nb-NO/opds-Fedora_Draft_Documentation.xml b/public_html/nb-NO/opds-Fedora_Draft_Documentation.xml
index 5dbdf28..f860e19 100644
--- a/public_html/nb-NO/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/nb-NO/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/nb-NO/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:42</updated>
+  <updated>2013-03-12T03:13:04</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/nb-NO/opds-Fedora_Security_Team.xml b/public_html/nb-NO/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..fe1006b
--- /dev/null
+++ b/public_html/nb-NO/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/nb-NO/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/nb-NO/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:04</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>nb-NO</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/nb-NO/opds.xml b/public_html/nb-NO/opds.xml
index 964a502..f860d60 100644
--- a/public_html/nb-NO/opds.xml
+++ b/public_html/nb-NO/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/nb-NO/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:42</updated>
+  <updated>2013-03-12T03:13:04</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/nb-NO/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:42</updated>
+    <updated>2013-03-12T03:13:04</updated>
     <dc:language>nb-NO</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/nb-NO/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:42</updated>
+    <updated>2013-03-12T03:13:04</updated>
     <dc:language>nb-NO</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/nb-NO/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:42</updated>
+    <updated>2013-03-12T03:13:04</updated>
     <dc:language>nb-NO</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/nb-NO/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:42</updated>
+    <updated>2013-03-12T03:13:04</updated>
     <dc:language>nb-NO</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/nb-NO/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:42</updated>
+    <updated>2013-03-12T03:13:04</updated>
     <dc:language>nb-NO</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/nb-NO/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:04</updated>
+    <dc:language>nb-NO</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/nb-NO/toc.html b/public_html/nb-NO/toc.html
index bd5d11f..7250c0b 100644
--- a/public_html/nb-NO/toc.html
+++ b/public_html/nb-NO/toc.html
@@ -1589,6 +1589,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/nl-NL/Site_Statistics.html b/public_html/nl-NL/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/nl-NL/Site_Statistics.html
+++ b/public_html/nl-NL/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/nl-NL/opds-Community_Services_Infrastructure.xml b/public_html/nl-NL/opds-Community_Services_Infrastructure.xml
index 1c6a39a..8b32f6c 100644
--- a/public_html/nl-NL/opds-Community_Services_Infrastructure.xml
+++ b/public_html/nl-NL/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/nl-NL//opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:42</updated>
+  <updated>2013-03-12T03:13:04</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/nl-NL/opds-Defensive_Coding.xml b/public_html/nl-NL/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..8ef7950
--- /dev/null
+++ b/public_html/nl-NL/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/nl-NL//opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/nl-NL//opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:07</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>nl-NL/</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/nl-NL/opds-Fedora.xml b/public_html/nl-NL/opds-Fedora.xml
index e24bdf3..de964f3 100644
--- a/public_html/nl-NL/opds-Fedora.xml
+++ b/public_html/nl-NL/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/nl-NL//opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:42</updated>
+  <updated>2013-03-12T03:13:04</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/nl-NL/opds-Fedora_Contributor_Documentation.xml b/public_html/nl-NL/opds-Fedora_Contributor_Documentation.xml
index 5f48562..71e5ab1 100644
--- a/public_html/nl-NL/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/nl-NL/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/nl-NL//opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:42</updated>
+  <updated>2013-03-12T03:13:04</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/nl-NL/opds-Fedora_Core.xml b/public_html/nl-NL/opds-Fedora_Core.xml
index 484a6f9..c69097d 100644
--- a/public_html/nl-NL/opds-Fedora_Core.xml
+++ b/public_html/nl-NL/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/nl-NL//opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:42</updated>
+  <updated>2013-03-12T03:13:04</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/nl-NL/opds-Fedora_Draft_Documentation.xml b/public_html/nl-NL/opds-Fedora_Draft_Documentation.xml
index 54c7fbe..ff93c45 100644
--- a/public_html/nl-NL/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/nl-NL/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/nl-NL//opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:43</updated>
+  <updated>2013-03-12T03:13:04</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/nl-NL/opds-Fedora_Security_Team.xml b/public_html/nl-NL/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..2a73e4a
--- /dev/null
+++ b/public_html/nl-NL/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/nl-NL//opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/nl-NL//opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:04</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>nl-NL/</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/nl-NL/opds.xml b/public_html/nl-NL/opds.xml
index aa3640e..f10991c 100644
--- a/public_html/nl-NL/opds.xml
+++ b/public_html/nl-NL/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/nl-NL//opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:43</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/nl-NL//Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:42</updated>
+    <updated>2013-03-12T03:13:04</updated>
     <dc:language>nl-NL/</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/nl-NL//Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:42</updated>
+    <updated>2013-03-12T03:13:04</updated>
     <dc:language>nl-NL/</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/nl-NL//Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:42</updated>
+    <updated>2013-03-12T03:13:04</updated>
     <dc:language>nl-NL/</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/nl-NL//Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:42</updated>
+    <updated>2013-03-12T03:13:04</updated>
     <dc:language>nl-NL/</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/nl-NL//Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:43</updated>
+    <updated>2013-03-12T03:13:04</updated>
     <dc:language>nl-NL/</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/nl-NL//Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:04</updated>
+    <dc:language>nl-NL/</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/nl-NL/toc.html b/public_html/nl-NL/toc.html
index f9c4c78..736c45c 100644
--- a/public_html/nl-NL/toc.html
+++ b/public_html/nl-NL/toc.html
@@ -1589,6 +1589,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/opds.xml b/public_html/opds.xml
index df2a6f9..59635a2 100644
--- a/public_html/opds.xml
+++ b/public_html/opds.xml
@@ -7,7 +7,7 @@
   <link rel="start" href="http://docs.fedoraproject.org/opds.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <title>Fedora Documentation</title>
-  <updated>2013-03-11T21:17:49</updated>
+  <updated>2013-03-12T03:13:07</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -16,7 +16,7 @@
   <entry>
     <title>অসমীয়া</title>
     <id>as-IN/opds.xml</id>
-    <updated>2013-03-11T21:17:34</updated>
+    <updated>2013-03-12T03:13:00</updated>
     <dc:language>as-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="as-IN/opds.xml"/>
@@ -24,7 +24,7 @@
   <entry>
     <title>български</title>
     <id>bg-BG/opds.xml</id>
-    <updated>2013-03-11T21:17:34</updated>
+    <updated>2013-03-12T03:13:00</updated>
     <dc:language>bg-BG</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="bg-BG/opds.xml"/>
@@ -32,7 +32,7 @@
   <entry>
     <title>বাংলা</title>
     <id>bn-IN/opds.xml</id>
-    <updated>2013-03-11T21:17:34</updated>
+    <updated>2013-03-12T03:13:00</updated>
     <dc:language>bn-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="bn-IN/opds.xml"/>
@@ -40,7 +40,7 @@
   <entry>
     <title>Bosanski</title>
     <id>bs-BA/opds.xml</id>
-    <updated>2013-03-11T21:17:35</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>bs-BA</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="bs-BA/opds.xml"/>
@@ -48,7 +48,7 @@
   <entry>
     <title>Català</title>
     <id>ca-ES/opds.xml</id>
-    <updated>2013-03-11T21:17:35</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>ca-ES</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="ca-ES/opds.xml"/>
@@ -56,7 +56,7 @@
   <entry>
     <title>Čeština</title>
     <id>cs-CZ/opds.xml</id>
-    <updated>2013-03-11T21:17:35</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>cs-CZ</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="cs-CZ/opds.xml"/>
@@ -64,7 +64,7 @@
   <entry>
     <title>Dansk</title>
     <id>da-DK/opds.xml</id>
-    <updated>2013-03-11T21:17:36</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>da-DK</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="da-DK/opds.xml"/>
@@ -72,7 +72,7 @@
   <entry>
     <title>Deutsch</title>
     <id>de-DE/opds.xml</id>
-    <updated>2013-03-11T21:17:36</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>de-DE</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="de-DE/opds.xml"/>
@@ -80,7 +80,7 @@
   <entry>
     <title>Ελληνικά</title>
     <id>el-GR/opds.xml</id>
-    <updated>2013-03-11T21:17:36</updated>
+    <updated>2013-03-12T03:13:01</updated>
     <dc:language>el-GR</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="el-GR/opds.xml"/>
@@ -88,7 +88,7 @@
   <entry>
     <title>English</title>
     <id>en-US/opds.xml</id>
-    <updated>2013-03-11T21:17:36</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>en-US</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="en-US/opds.xml"/>
@@ -96,7 +96,7 @@
   <entry>
     <title>Español</title>
     <id>es-ES/opds.xml</id>
-    <updated>2013-03-11T21:17:37</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>es-ES</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="es-ES/opds.xml"/>
@@ -104,7 +104,7 @@
   <entry>
     <title>فارسی</title>
     <id>fa-IR/opds.xml</id>
-    <updated>2013-03-11T21:17:37</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>fa-IR</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="fa-IR/opds.xml"/>
@@ -112,7 +112,7 @@
   <entry>
     <title>Suomi</title>
     <id>fi-FI/opds.xml</id>
-    <updated>2013-03-11T21:17:37</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>fi-FI</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="fi-FI/opds.xml"/>
@@ -120,7 +120,7 @@
   <entry>
     <title>Français</title>
     <id>fr-FR/opds.xml</id>
-    <updated>2013-03-11T21:17:38</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>fr-FR</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="fr-FR/opds.xml"/>
@@ -128,7 +128,7 @@
   <entry>
     <title>ગુજરાતી</title>
     <id>gu-IN/opds.xml</id>
-    <updated>2013-03-11T21:17:38</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>gu-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="gu-IN/opds.xml"/>
@@ -136,7 +136,7 @@
   <entry>
     <title>עברית</title>
     <id>he-IL/opds.xml</id>
-    <updated>2013-03-11T21:17:38</updated>
+    <updated>2013-03-12T03:13:02</updated>
     <dc:language>he-IL</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="he-IL/opds.xml"/>
@@ -144,7 +144,7 @@
   <entry>
     <title>हिन्दी</title>
     <id>hi-IN/opds.xml</id>
-    <updated>2013-03-11T21:17:39</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>hi-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="hi-IN/opds.xml"/>
@@ -152,7 +152,7 @@
   <entry>
     <title>Magyar</title>
     <id>hu-HU/opds.xml</id>
-    <updated>2013-03-11T21:17:39</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>hu-HU</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="hu-HU/opds.xml"/>
@@ -160,7 +160,7 @@
   <entry>
     <title>Interlingua (International Auxiliary Language Association)</title>
     <id>ia/opds.xml</id>
-    <updated>2013-03-11T21:17:39</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>ia</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="ia/opds.xml"/>
@@ -168,7 +168,7 @@
   <entry>
     <title>Indonesia</title>
     <id>id-ID/opds.xml</id>
-    <updated>2013-03-11T21:17:40</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>id-ID</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="id-ID/opds.xml"/>
@@ -176,7 +176,7 @@
   <entry>
     <title>Italiano</title>
     <id>it-IT/opds.xml</id>
-    <updated>2013-03-11T21:17:40</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>it-IT</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="it-IT/opds.xml"/>
@@ -184,7 +184,7 @@
   <entry>
     <title>日本語</title>
     <id>ja-JP/opds.xml</id>
-    <updated>2013-03-11T21:17:40</updated>
+    <updated>2013-03-12T03:13:03</updated>
     <dc:language>ja-JP</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="ja-JP/opds.xml"/>
@@ -192,7 +192,7 @@
   <entry>
     <title>ಕನ್ನಡ</title>
     <id>kn-IN/opds.xml</id>
-    <updated>2013-03-11T21:17:41</updated>
+    <updated>2013-03-12T03:13:04</updated>
     <dc:language>kn-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="kn-IN/opds.xml"/>
@@ -200,7 +200,7 @@
   <entry>
     <title>한국어</title>
     <id>ko-KR/opds.xml</id>
-    <updated>2013-03-11T21:17:41</updated>
+    <updated>2013-03-12T03:13:04</updated>
     <dc:language>ko-KR</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="ko-KR/opds.xml"/>
@@ -208,7 +208,7 @@
   <entry>
     <title>മലയാളം</title>
     <id>ml-IN/opds.xml</id>
-    <updated>2013-03-11T21:17:41</updated>
+    <updated>2013-03-12T03:13:04</updated>
     <dc:language>ml-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="ml-IN/opds.xml"/>
@@ -216,7 +216,7 @@
   <entry>
     <title>मराठी</title>
     <id>mr-IN/opds.xml</id>
-    <updated>2013-03-11T21:17:42</updated>
+    <updated>2013-03-12T03:13:04</updated>
     <dc:language>mr-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="mr-IN/opds.xml"/>
@@ -224,7 +224,7 @@
   <entry>
     <title>Norsk (bokmål)</title>
     <id>nb-NO/opds.xml</id>
-    <updated>2013-03-11T21:17:42</updated>
+    <updated>2013-03-12T03:13:04</updated>
     <dc:language>nb-NO</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="nb-NO/opds.xml"/>
@@ -232,7 +232,7 @@
   <entry>
     <title>Nederlands</title>
     <id>nl-NL/opds.xml</id>
-    <updated>2013-03-11T21:17:42</updated>
+    <updated>2013-03-12T03:13:04</updated>
     <dc:language>nl-NL</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="nl-NL/opds.xml"/>
@@ -240,7 +240,7 @@
   <entry>
     <title>Dutch</title>
     <id>nl-NL//opds.xml</id>
-    <updated>2013-03-11T21:17:43</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>nl-NL/</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="nl-NL//opds.xml"/>
@@ -248,7 +248,7 @@
   <entry>
     <title>ଓଡ଼ିଆ</title>
     <id>or-IN/opds.xml</id>
-    <updated>2013-03-11T21:17:43</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>or-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="or-IN/opds.xml"/>
@@ -256,7 +256,7 @@
   <entry>
     <title>ਪੰਜਾਬੀ</title>
     <id>pa-IN/opds.xml</id>
-    <updated>2013-03-11T21:17:43</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>pa-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="pa-IN/opds.xml"/>
@@ -264,7 +264,7 @@
   <entry>
     <title>Polski</title>
     <id>pl-PL/opds.xml</id>
-    <updated>2013-03-11T21:17:44</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>pl-PL</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="pl-PL/opds.xml"/>
@@ -272,7 +272,7 @@
   <entry>
     <title>Português Brasileiro</title>
     <id>pt-BR/opds.xml</id>
-    <updated>2013-03-11T21:17:44</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>pt-BR</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="pt-BR/opds.xml"/>
@@ -280,7 +280,7 @@
   <entry>
     <title>Português</title>
     <id>pt-PT/opds.xml</id>
-    <updated>2013-03-11T21:17:44</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>pt-PT</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="pt-PT/opds.xml"/>
@@ -288,7 +288,7 @@
   <entry>
     <title>Romanian</title>
     <id>ro/opds.xml</id>
-    <updated>2013-03-11T21:17:45</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>ro</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="ro/opds.xml"/>
@@ -296,7 +296,7 @@
   <entry>
     <title>Русский</title>
     <id>ru-RU/opds.xml</id>
-    <updated>2013-03-11T21:17:45</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>ru-RU</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="ru-RU/opds.xml"/>
@@ -304,7 +304,7 @@
   <entry>
     <title>Slovenščina</title>
     <id>sk-SK/opds.xml</id>
-    <updated>2013-03-11T21:17:45</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>sk-SK</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="sk-SK/opds.xml"/>
@@ -312,7 +312,7 @@
   <entry>
     <title>Srpski (latinica)</title>
     <id>sr-Latn-RS/opds.xml</id>
-    <updated>2013-03-11T21:17:46</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>sr-Latn-RS</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="sr-Latn-RS/opds.xml"/>
@@ -320,7 +320,7 @@
   <entry>
     <title>Српски</title>
     <id>sr-RS/opds.xml</id>
-    <updated>2013-03-11T21:17:46</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>sr-RS</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="sr-RS/opds.xml"/>
@@ -328,7 +328,7 @@
   <entry>
     <title>Svenska</title>
     <id>sv-SE/opds.xml</id>
-    <updated>2013-03-11T21:17:46</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>sv-SE</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="sv-SE/opds.xml"/>
@@ -336,7 +336,7 @@
   <entry>
     <title>தமிழ்</title>
     <id>ta-IN/opds.xml</id>
-    <updated>2013-03-11T21:17:47</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>ta-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="ta-IN/opds.xml"/>
@@ -344,7 +344,7 @@
   <entry>
     <title>తెలుగు</title>
     <id>te-IN/opds.xml</id>
-    <updated>2013-03-11T21:17:47</updated>
+    <updated>2013-03-12T03:13:07</updated>
     <dc:language>te-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="te-IN/opds.xml"/>
@@ -352,7 +352,7 @@
   <entry>
     <title>Українська</title>
     <id>uk-UA/opds.xml</id>
-    <updated>2013-03-11T21:17:47</updated>
+    <updated>2013-03-12T03:13:07</updated>
     <dc:language>uk-UA</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="uk-UA/opds.xml"/>
@@ -360,7 +360,7 @@
   <entry>
     <title>简体中文</title>
     <id>zh-CN/opds.xml</id>
-    <updated>2013-03-11T21:17:48</updated>
+    <updated>2013-03-12T03:13:07</updated>
     <dc:language>zh-CN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="zh-CN/opds.xml"/>
@@ -368,7 +368,7 @@
   <entry>
     <title>繁體中文</title>
     <id>zh-TW/opds.xml</id>
-    <updated>2013-03-11T21:17:48</updated>
+    <updated>2013-03-12T03:13:07</updated>
     <dc:language>zh-TW</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="zh-TW/opds.xml"/>
diff --git a/public_html/or-IN/Site_Statistics.html b/public_html/or-IN/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/or-IN/Site_Statistics.html
+++ b/public_html/or-IN/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/or-IN/opds-Community_Services_Infrastructure.xml b/public_html/or-IN/opds-Community_Services_Infrastructure.xml
index 695c9dc..5bc8aa6 100644
--- a/public_html/or-IN/opds-Community_Services_Infrastructure.xml
+++ b/public_html/or-IN/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/or-IN/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:43</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/or-IN/opds-Defensive_Coding.xml b/public_html/or-IN/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..c1af5f4
--- /dev/null
+++ b/public_html/or-IN/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/or-IN/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/or-IN/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:07</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>or-IN</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/or-IN/opds-Fedora.xml b/public_html/or-IN/opds-Fedora.xml
index 3a70583..04bf0c3 100644
--- a/public_html/or-IN/opds-Fedora.xml
+++ b/public_html/or-IN/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/or-IN/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:43</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/or-IN/opds-Fedora_Contributor_Documentation.xml b/public_html/or-IN/opds-Fedora_Contributor_Documentation.xml
index 43fdb89..1a365c4 100644
--- a/public_html/or-IN/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/or-IN/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/or-IN/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:43</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/or-IN/opds-Fedora_Core.xml b/public_html/or-IN/opds-Fedora_Core.xml
index 57f46ef..ba20943 100644
--- a/public_html/or-IN/opds-Fedora_Core.xml
+++ b/public_html/or-IN/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/or-IN/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:43</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/or-IN/opds-Fedora_Draft_Documentation.xml b/public_html/or-IN/opds-Fedora_Draft_Documentation.xml
index db83a23..5541e26 100644
--- a/public_html/or-IN/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/or-IN/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/or-IN/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:43</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/or-IN/opds-Fedora_Security_Team.xml b/public_html/or-IN/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..66d0649
--- /dev/null
+++ b/public_html/or-IN/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/or-IN/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/or-IN/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:05</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>or-IN</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/or-IN/opds.xml b/public_html/or-IN/opds.xml
index 932525e..efcb65a 100644
--- a/public_html/or-IN/opds.xml
+++ b/public_html/or-IN/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/or-IN/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:43</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/or-IN/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:43</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>or-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/or-IN/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:43</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>or-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/or-IN/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:43</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>or-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/or-IN/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:43</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>or-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/or-IN/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:43</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>or-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/or-IN/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:05</updated>
+    <dc:language>or-IN</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/or-IN/toc.html b/public_html/or-IN/toc.html
index 473b6cc..f428a0d 100644
--- a/public_html/or-IN/toc.html
+++ b/public_html/or-IN/toc.html
@@ -1589,6 +1589,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/pa-IN/Site_Statistics.html b/public_html/pa-IN/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/pa-IN/Site_Statistics.html
+++ b/public_html/pa-IN/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/pa-IN/opds-Community_Services_Infrastructure.xml b/public_html/pa-IN/opds-Community_Services_Infrastructure.xml
index 0558683..2fc5b06 100644
--- a/public_html/pa-IN/opds-Community_Services_Infrastructure.xml
+++ b/public_html/pa-IN/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/pa-IN/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:43</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/pa-IN/opds-Defensive_Coding.xml b/public_html/pa-IN/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..7df600f
--- /dev/null
+++ b/public_html/pa-IN/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/pa-IN/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/pa-IN/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:07</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>pa-IN</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/pa-IN/opds-Fedora.xml b/public_html/pa-IN/opds-Fedora.xml
index d0d1b6e..dbe4bbf 100644
--- a/public_html/pa-IN/opds-Fedora.xml
+++ b/public_html/pa-IN/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/pa-IN/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:43</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/pa-IN/opds-Fedora_Contributor_Documentation.xml b/public_html/pa-IN/opds-Fedora_Contributor_Documentation.xml
index 0dfc697..432a4d6 100644
--- a/public_html/pa-IN/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/pa-IN/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/pa-IN/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:43</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/pa-IN/opds-Fedora_Core.xml b/public_html/pa-IN/opds-Fedora_Core.xml
index 8a1b6a2..83b07f6 100644
--- a/public_html/pa-IN/opds-Fedora_Core.xml
+++ b/public_html/pa-IN/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/pa-IN/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:43</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/pa-IN/opds-Fedora_Draft_Documentation.xml b/public_html/pa-IN/opds-Fedora_Draft_Documentation.xml
index 318abb8..883c023 100644
--- a/public_html/pa-IN/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/pa-IN/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/pa-IN/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:43</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/pa-IN/opds-Fedora_Security_Team.xml b/public_html/pa-IN/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..401231d
--- /dev/null
+++ b/public_html/pa-IN/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/pa-IN/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/pa-IN/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:05</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>pa-IN</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/pa-IN/opds.xml b/public_html/pa-IN/opds.xml
index 47b48c7..4d0fc08 100644
--- a/public_html/pa-IN/opds.xml
+++ b/public_html/pa-IN/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/pa-IN/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:43</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/pa-IN/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:43</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>pa-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/pa-IN/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:43</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>pa-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/pa-IN/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:43</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>pa-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/pa-IN/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:43</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>pa-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/pa-IN/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:43</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>pa-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/pa-IN/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:05</updated>
+    <dc:language>pa-IN</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/pa-IN/toc.html b/public_html/pa-IN/toc.html
index 62fb2dc..b10ee72 100644
--- a/public_html/pa-IN/toc.html
+++ b/public_html/pa-IN/toc.html
@@ -1589,6 +1589,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/pl-PL/Site_Statistics.html b/public_html/pl-PL/Site_Statistics.html
index d2dcf61..e1a3db4 100644
--- a/public_html/pl-PL/Site_Statistics.html
+++ b/public_html/pl-PL/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Razem języków: </b>45<br />
-	<b>Razem pakietów: </b>843
+	<b>Razem pakietów: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/pl-PL/opds-Community_Services_Infrastructure.xml b/public_html/pl-PL/opds-Community_Services_Infrastructure.xml
index 5776be0..095f9a9 100644
--- a/public_html/pl-PL/opds-Community_Services_Infrastructure.xml
+++ b/public_html/pl-PL/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/pl-PL/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:43</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/pl-PL/opds-Defensive_Coding.xml b/public_html/pl-PL/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..87c2ea8
--- /dev/null
+++ b/public_html/pl-PL/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/pl-PL/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/pl-PL/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:07</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>pl-PL</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/pl-PL/opds-Fedora.xml b/public_html/pl-PL/opds-Fedora.xml
index ee9e122..44d94dd 100644
--- a/public_html/pl-PL/opds-Fedora.xml
+++ b/public_html/pl-PL/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/pl-PL/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:43</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/pl-PL/opds-Fedora_Contributor_Documentation.xml b/public_html/pl-PL/opds-Fedora_Contributor_Documentation.xml
index bfc1734..aa3d0a1 100644
--- a/public_html/pl-PL/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/pl-PL/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/pl-PL/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Dokumentacja dla współtwórców Fedory</title>
   <subtitle>Dokumentacja dla współtwórców Fedory</subtitle>
-  <updated>2013-03-11T21:17:43</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/pl-PL/opds-Fedora_Core.xml b/public_html/pl-PL/opds-Fedora_Core.xml
index 274196d..609f155 100644
--- a/public_html/pl-PL/opds-Fedora_Core.xml
+++ b/public_html/pl-PL/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/pl-PL/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:43</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/pl-PL/opds-Fedora_Draft_Documentation.xml b/public_html/pl-PL/opds-Fedora_Draft_Documentation.xml
index 703fe8f..4fde735 100644
--- a/public_html/pl-PL/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/pl-PL/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/pl-PL/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:44</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/pl-PL/opds-Fedora_Security_Team.xml b/public_html/pl-PL/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..88bca9c
--- /dev/null
+++ b/public_html/pl-PL/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/pl-PL/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/pl-PL/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:05</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>pl-PL</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/pl-PL/opds.xml b/public_html/pl-PL/opds.xml
index c9e3af3..944a9bc 100644
--- a/public_html/pl-PL/opds.xml
+++ b/public_html/pl-PL/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/pl-PL/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:44</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/pl-PL/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:43</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>pl-PL</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/pl-PL/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:43</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>pl-PL</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Dokumentacja dla współtwórców Fedory</title>
     <id>http://docs.fedoraproject.org/pl-PL/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:43</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>pl-PL</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/pl-PL/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:43</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>pl-PL</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/pl-PL/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:44</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>pl-PL</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/pl-PL/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:05</updated>
+    <dc:language>pl-PL</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/pl-PL/toc.html b/public_html/pl-PL/toc.html
index 90654ce..43d605e 100644
--- a/public_html/pl-PL/toc.html
+++ b/public_html/pl-PL/toc.html
@@ -1661,6 +1661,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Nieprzetłumaczone</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>Powyższe menu nawigacji wymaga do działania obsługi języka JavaScript.</p><p>Należy włączyć obsługę języka JavaScript, aby umożliwić menu nawigacji działanie.</p><p>Należy wyłączyć obsługę styli CSS, aby wyświetlić opcje nawigacji bez włączonej obsługi języka JavaScript</p>
 	</div>
diff --git a/public_html/pt-BR/Site_Statistics.html b/public_html/pt-BR/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/pt-BR/Site_Statistics.html
+++ b/public_html/pt-BR/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/pt-BR/opds-Community_Services_Infrastructure.xml b/public_html/pt-BR/opds-Community_Services_Infrastructure.xml
index eed5ba5..73ee57b 100644
--- a/public_html/pt-BR/opds-Community_Services_Infrastructure.xml
+++ b/public_html/pt-BR/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/pt-BR/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:44</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/pt-BR/opds-Defensive_Coding.xml b/public_html/pt-BR/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..cf1a208
--- /dev/null
+++ b/public_html/pt-BR/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/pt-BR/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/pt-BR/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:08</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>pt-BR</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/pt-BR/opds-Fedora.xml b/public_html/pt-BR/opds-Fedora.xml
index 6ed0799..b278bae 100644
--- a/public_html/pt-BR/opds-Fedora.xml
+++ b/public_html/pt-BR/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/pt-BR/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:44</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/pt-BR/opds-Fedora_Contributor_Documentation.xml b/public_html/pt-BR/opds-Fedora_Contributor_Documentation.xml
index 36646cb..cf9f891 100644
--- a/public_html/pt-BR/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/pt-BR/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/pt-BR/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:44</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/pt-BR/opds-Fedora_Core.xml b/public_html/pt-BR/opds-Fedora_Core.xml
index 77b9b8a..5afaff7 100644
--- a/public_html/pt-BR/opds-Fedora_Core.xml
+++ b/public_html/pt-BR/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/pt-BR/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:44</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/pt-BR/opds-Fedora_Draft_Documentation.xml b/public_html/pt-BR/opds-Fedora_Draft_Documentation.xml
index 9585b72..73333d6 100644
--- a/public_html/pt-BR/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/pt-BR/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/pt-BR/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:44</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/pt-BR/opds-Fedora_Security_Team.xml b/public_html/pt-BR/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..eda2c14
--- /dev/null
+++ b/public_html/pt-BR/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/pt-BR/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/pt-BR/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:05</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>pt-BR</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/pt-BR/opds.xml b/public_html/pt-BR/opds.xml
index 8ca6e20..207f8fb 100644
--- a/public_html/pt-BR/opds.xml
+++ b/public_html/pt-BR/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/pt-BR/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:44</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/pt-BR/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:44</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>pt-BR</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/pt-BR/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:44</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>pt-BR</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/pt-BR/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:44</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>pt-BR</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/pt-BR/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:44</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>pt-BR</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/pt-BR/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:44</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>pt-BR</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/pt-BR/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:05</updated>
+    <dc:language>pt-BR</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/pt-BR/toc.html b/public_html/pt-BR/toc.html
index ce19682..1fc1e5b 100644
--- a/public_html/pt-BR/toc.html
+++ b/public_html/pt-BR/toc.html
@@ -1598,6 +1598,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/pt-PT/Site_Statistics.html b/public_html/pt-PT/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/pt-PT/Site_Statistics.html
+++ b/public_html/pt-PT/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/pt-PT/opds-Community_Services_Infrastructure.xml b/public_html/pt-PT/opds-Community_Services_Infrastructure.xml
index e61d18e..01d60d6 100644
--- a/public_html/pt-PT/opds-Community_Services_Infrastructure.xml
+++ b/public_html/pt-PT/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/pt-PT/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:44</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/pt-PT/opds-Defensive_Coding.xml b/public_html/pt-PT/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..2d8275f
--- /dev/null
+++ b/public_html/pt-PT/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/pt-PT/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/pt-PT/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:08</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>pt-PT</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/pt-PT/opds-Fedora.xml b/public_html/pt-PT/opds-Fedora.xml
index c4971a5..50670ba 100644
--- a/public_html/pt-PT/opds-Fedora.xml
+++ b/public_html/pt-PT/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/pt-PT/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:44</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/pt-PT/opds-Fedora_Contributor_Documentation.xml b/public_html/pt-PT/opds-Fedora_Contributor_Documentation.xml
index b94b64e..bc0d794 100644
--- a/public_html/pt-PT/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/pt-PT/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/pt-PT/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:44</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/pt-PT/opds-Fedora_Core.xml b/public_html/pt-PT/opds-Fedora_Core.xml
index 1944f0d..79b94f4 100644
--- a/public_html/pt-PT/opds-Fedora_Core.xml
+++ b/public_html/pt-PT/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/pt-PT/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:44</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/pt-PT/opds-Fedora_Draft_Documentation.xml b/public_html/pt-PT/opds-Fedora_Draft_Documentation.xml
index df72b09..284d9b0 100644
--- a/public_html/pt-PT/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/pt-PT/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/pt-PT/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:44</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/pt-PT/opds-Fedora_Security_Team.xml b/public_html/pt-PT/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..d83fe47
--- /dev/null
+++ b/public_html/pt-PT/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/pt-PT/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/pt-PT/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:05</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>pt-PT</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/pt-PT/opds.xml b/public_html/pt-PT/opds.xml
index 404a346..1da8ec0 100644
--- a/public_html/pt-PT/opds.xml
+++ b/public_html/pt-PT/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/pt-PT/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:44</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/pt-PT/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:44</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>pt-PT</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/pt-PT/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:44</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>pt-PT</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/pt-PT/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:44</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>pt-PT</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/pt-PT/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:44</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>pt-PT</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/pt-PT/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:44</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>pt-PT</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/pt-PT/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:05</updated>
+    <dc:language>pt-PT</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/pt-PT/toc.html b/public_html/pt-PT/toc.html
index 1751cb4..c511158 100644
--- a/public_html/pt-PT/toc.html
+++ b/public_html/pt-PT/toc.html
@@ -1588,6 +1588,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/ro/Site_Statistics.html b/public_html/ro/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/ro/Site_Statistics.html
+++ b/public_html/ro/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/ro/opds-Community_Services_Infrastructure.xml b/public_html/ro/opds-Community_Services_Infrastructure.xml
index 42d8419..2288b2a 100644
--- a/public_html/ro/opds-Community_Services_Infrastructure.xml
+++ b/public_html/ro/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ro/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:44</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ro/opds-Defensive_Coding.xml b/public_html/ro/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..6bd8017
--- /dev/null
+++ b/public_html/ro/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/ro/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/ro/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:08</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>ro</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/ro/opds-Fedora.xml b/public_html/ro/opds-Fedora.xml
index cf2ad79..df7fccf 100644
--- a/public_html/ro/opds-Fedora.xml
+++ b/public_html/ro/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ro/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:44</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ro/opds-Fedora_Contributor_Documentation.xml b/public_html/ro/opds-Fedora_Contributor_Documentation.xml
index 9ff0932..543845e 100644
--- a/public_html/ro/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/ro/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ro/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:44</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ro/opds-Fedora_Core.xml b/public_html/ro/opds-Fedora_Core.xml
index a186ad6..e3bf792 100644
--- a/public_html/ro/opds-Fedora_Core.xml
+++ b/public_html/ro/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ro/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:44</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ro/opds-Fedora_Draft_Documentation.xml b/public_html/ro/opds-Fedora_Draft_Documentation.xml
index 18a77e1..8f6062a 100644
--- a/public_html/ro/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/ro/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ro/opds-Fedora_Draft_Documentation.xml</id>
   <title>Schiță Documentație Fedora</title>
   <subtitle>Schiță Documentație Fedora</subtitle>
-  <updated>2013-03-11T21:17:44</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ro/opds-Fedora_Security_Team.xml b/public_html/ro/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..72c9230
--- /dev/null
+++ b/public_html/ro/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/ro/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/ro/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:05</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>ro</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/ro/opds.xml b/public_html/ro/opds.xml
index 419e967..8ffa8ee 100644
--- a/public_html/ro/opds.xml
+++ b/public_html/ro/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/ro/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:45</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/ro/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:44</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>ro</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/ro/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:44</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>ro</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/ro/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:44</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>ro</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/ro/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:44</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>ro</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Schiță Documentație Fedora</title>
     <id>http://docs.fedoraproject.org/ro/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:45</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>ro</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/ro/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:05</updated>
+    <dc:language>ro</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/ro/toc.html b/public_html/ro/toc.html
index 635e0ee..17b37cd 100644
--- a/public_html/ro/toc.html
+++ b/public_html/ro/toc.html
@@ -1589,6 +1589,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/ru-RU/Site_Statistics.html b/public_html/ru-RU/Site_Statistics.html
index 53395c1..cb7ec4d 100644
--- a/public_html/ru-RU/Site_Statistics.html
+++ b/public_html/ru-RU/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Всего языков: </b>45<br />
-	<b>Всего пакетов: </b>843
+	<b>Всего пакетов: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/ru-RU/opds-Community_Services_Infrastructure.xml b/public_html/ru-RU/opds-Community_Services_Infrastructure.xml
index c7434c8..d85641a 100644
--- a/public_html/ru-RU/opds-Community_Services_Infrastructure.xml
+++ b/public_html/ru-RU/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ru-RU/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:45</updated>
+  <updated>2013-03-12T03:13:05</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ru-RU/opds-Defensive_Coding.xml b/public_html/ru-RU/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..be3b14a
--- /dev/null
+++ b/public_html/ru-RU/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/ru-RU/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/ru-RU/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:08</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>ru-RU</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/ru-RU/opds-Fedora.xml b/public_html/ru-RU/opds-Fedora.xml
index 6f95a92..73470ec 100644
--- a/public_html/ru-RU/opds-Fedora.xml
+++ b/public_html/ru-RU/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ru-RU/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:45</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ru-RU/opds-Fedora_Contributor_Documentation.xml b/public_html/ru-RU/opds-Fedora_Contributor_Documentation.xml
index 2df7b28..bcaf971 100644
--- a/public_html/ru-RU/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/ru-RU/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ru-RU/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Документация участника Fedora</title>
   <subtitle>Документация участника Fedora</subtitle>
-  <updated>2013-03-11T21:17:45</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ru-RU/opds-Fedora_Core.xml b/public_html/ru-RU/opds-Fedora_Core.xml
index a8927c2..1be1467 100644
--- a/public_html/ru-RU/opds-Fedora_Core.xml
+++ b/public_html/ru-RU/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ru-RU/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:45</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ru-RU/opds-Fedora_Draft_Documentation.xml b/public_html/ru-RU/opds-Fedora_Draft_Documentation.xml
index f577dad..2156e99 100644
--- a/public_html/ru-RU/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/ru-RU/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ru-RU/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:45</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ru-RU/opds-Fedora_Security_Team.xml b/public_html/ru-RU/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..09dee27
--- /dev/null
+++ b/public_html/ru-RU/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/ru-RU/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/ru-RU/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:06</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>ru-RU</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/ru-RU/opds.xml b/public_html/ru-RU/opds.xml
index 073f218..3af6d27 100644
--- a/public_html/ru-RU/opds.xml
+++ b/public_html/ru-RU/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/ru-RU/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:45</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/ru-RU/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:45</updated>
+    <updated>2013-03-12T03:13:05</updated>
     <dc:language>ru-RU</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/ru-RU/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:45</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>ru-RU</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Документация участника Fedora</title>
     <id>http://docs.fedoraproject.org/ru-RU/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:45</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>ru-RU</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/ru-RU/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:45</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>ru-RU</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/ru-RU/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:45</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>ru-RU</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/ru-RU/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:06</updated>
+    <dc:language>ru-RU</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/ru-RU/toc.html b/public_html/ru-RU/toc.html
index 911e3dd..c94fbfa 100644
--- a/public_html/ru-RU/toc.html
+++ b/public_html/ru-RU/toc.html
@@ -1589,6 +1589,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Не переведено</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/sk-SK/Site_Statistics.html b/public_html/sk-SK/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/sk-SK/Site_Statistics.html
+++ b/public_html/sk-SK/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/sk-SK/opds-Community_Services_Infrastructure.xml b/public_html/sk-SK/opds-Community_Services_Infrastructure.xml
index a67e818..33affd7 100644
--- a/public_html/sk-SK/opds-Community_Services_Infrastructure.xml
+++ b/public_html/sk-SK/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/sk-SK/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:45</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/sk-SK/opds-Defensive_Coding.xml b/public_html/sk-SK/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..c6c06a6
--- /dev/null
+++ b/public_html/sk-SK/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/sk-SK/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/sk-SK/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:09</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>sk-SK</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/sk-SK/opds-Fedora.xml b/public_html/sk-SK/opds-Fedora.xml
index 805e6c4..4905648 100644
--- a/public_html/sk-SK/opds-Fedora.xml
+++ b/public_html/sk-SK/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/sk-SK/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:45</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/sk-SK/opds-Fedora_Contributor_Documentation.xml b/public_html/sk-SK/opds-Fedora_Contributor_Documentation.xml
index 793a530..08ea163 100644
--- a/public_html/sk-SK/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/sk-SK/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/sk-SK/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:45</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/sk-SK/opds-Fedora_Core.xml b/public_html/sk-SK/opds-Fedora_Core.xml
index 328f807..8eefb0b 100644
--- a/public_html/sk-SK/opds-Fedora_Core.xml
+++ b/public_html/sk-SK/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/sk-SK/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:45</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/sk-SK/opds-Fedora_Draft_Documentation.xml b/public_html/sk-SK/opds-Fedora_Draft_Documentation.xml
index 9884d96..8f061d2 100644
--- a/public_html/sk-SK/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/sk-SK/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/sk-SK/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:45</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/sk-SK/opds-Fedora_Security_Team.xml b/public_html/sk-SK/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..a476192
--- /dev/null
+++ b/public_html/sk-SK/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/sk-SK/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/sk-SK/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:06</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>sk-SK</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/sk-SK/opds.xml b/public_html/sk-SK/opds.xml
index 754e7ea..a1a189e 100644
--- a/public_html/sk-SK/opds.xml
+++ b/public_html/sk-SK/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/sk-SK/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:45</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/sk-SK/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:45</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>sk-SK</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/sk-SK/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:45</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>sk-SK</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/sk-SK/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:45</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>sk-SK</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/sk-SK/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:45</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>sk-SK</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/sk-SK/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:45</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>sk-SK</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/sk-SK/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:06</updated>
+    <dc:language>sk-SK</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/sk-SK/toc.html b/public_html/sk-SK/toc.html
index 515dad8..898ca67 100644
--- a/public_html/sk-SK/toc.html
+++ b/public_html/sk-SK/toc.html
@@ -1589,6 +1589,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/sr-Latn-RS/Site_Statistics.html b/public_html/sr-Latn-RS/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/sr-Latn-RS/Site_Statistics.html
+++ b/public_html/sr-Latn-RS/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/sr-Latn-RS/opds-Community_Services_Infrastructure.xml b/public_html/sr-Latn-RS/opds-Community_Services_Infrastructure.xml
index 930c3e5..4f55c8f 100644
--- a/public_html/sr-Latn-RS/opds-Community_Services_Infrastructure.xml
+++ b/public_html/sr-Latn-RS/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/sr-Latn-RS/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:45</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/sr-Latn-RS/opds-Defensive_Coding.xml b/public_html/sr-Latn-RS/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..5a6b3cd
--- /dev/null
+++ b/public_html/sr-Latn-RS/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/sr-Latn-RS/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/sr-Latn-RS/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:09</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>sr-Latn-RS</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/sr-Latn-RS/opds-Fedora.xml b/public_html/sr-Latn-RS/opds-Fedora.xml
index 16aa9a8..ca3aa1b 100644
--- a/public_html/sr-Latn-RS/opds-Fedora.xml
+++ b/public_html/sr-Latn-RS/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/sr-Latn-RS/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:45</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/sr-Latn-RS/opds-Fedora_Contributor_Documentation.xml b/public_html/sr-Latn-RS/opds-Fedora_Contributor_Documentation.xml
index b412f0e..dfbb7e7 100644
--- a/public_html/sr-Latn-RS/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/sr-Latn-RS/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/sr-Latn-RS/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:45</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/sr-Latn-RS/opds-Fedora_Core.xml b/public_html/sr-Latn-RS/opds-Fedora_Core.xml
index b93373c..37bc3a8 100644
--- a/public_html/sr-Latn-RS/opds-Fedora_Core.xml
+++ b/public_html/sr-Latn-RS/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/sr-Latn-RS/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:45</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/sr-Latn-RS/opds-Fedora_Draft_Documentation.xml b/public_html/sr-Latn-RS/opds-Fedora_Draft_Documentation.xml
index 23c8828..cc58e0f 100644
--- a/public_html/sr-Latn-RS/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/sr-Latn-RS/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/sr-Latn-RS/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:45</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/sr-Latn-RS/opds-Fedora_Security_Team.xml b/public_html/sr-Latn-RS/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..7dfcf0f
--- /dev/null
+++ b/public_html/sr-Latn-RS/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/sr-Latn-RS/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/sr-Latn-RS/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:06</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>sr-Latn-RS</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/sr-Latn-RS/opds.xml b/public_html/sr-Latn-RS/opds.xml
index 550bf5b..0fcdbc3 100644
--- a/public_html/sr-Latn-RS/opds.xml
+++ b/public_html/sr-Latn-RS/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/sr-Latn-RS/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:46</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/sr-Latn-RS/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:45</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>sr-Latn-RS</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/sr-Latn-RS/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:45</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>sr-Latn-RS</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/sr-Latn-RS/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:45</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>sr-Latn-RS</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/sr-Latn-RS/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:45</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>sr-Latn-RS</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/sr-Latn-RS/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:45</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>sr-Latn-RS</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/sr-Latn-RS/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:06</updated>
+    <dc:language>sr-Latn-RS</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/sr-Latn-RS/toc.html b/public_html/sr-Latn-RS/toc.html
index 77c51a1..fc5557e 100644
--- a/public_html/sr-Latn-RS/toc.html
+++ b/public_html/sr-Latn-RS/toc.html
@@ -1589,6 +1589,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/sr-RS/Site_Statistics.html b/public_html/sr-RS/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/sr-RS/Site_Statistics.html
+++ b/public_html/sr-RS/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/sr-RS/opds-Community_Services_Infrastructure.xml b/public_html/sr-RS/opds-Community_Services_Infrastructure.xml
index d12c2b2..e1e2fa9 100644
--- a/public_html/sr-RS/opds-Community_Services_Infrastructure.xml
+++ b/public_html/sr-RS/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/sr-RS/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:46</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/sr-RS/opds-Defensive_Coding.xml b/public_html/sr-RS/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..82b2416
--- /dev/null
+++ b/public_html/sr-RS/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/sr-RS/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/sr-RS/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:09</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>sr-RS</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/sr-RS/opds-Fedora.xml b/public_html/sr-RS/opds-Fedora.xml
index 8e7c42b..8ff48b1 100644
--- a/public_html/sr-RS/opds-Fedora.xml
+++ b/public_html/sr-RS/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/sr-RS/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:46</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/sr-RS/opds-Fedora_Contributor_Documentation.xml b/public_html/sr-RS/opds-Fedora_Contributor_Documentation.xml
index daff164..0375291 100644
--- a/public_html/sr-RS/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/sr-RS/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/sr-RS/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:46</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/sr-RS/opds-Fedora_Core.xml b/public_html/sr-RS/opds-Fedora_Core.xml
index ebb052b..9acea5c 100644
--- a/public_html/sr-RS/opds-Fedora_Core.xml
+++ b/public_html/sr-RS/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/sr-RS/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:46</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/sr-RS/opds-Fedora_Draft_Documentation.xml b/public_html/sr-RS/opds-Fedora_Draft_Documentation.xml
index 447ba13..b5ffb93 100644
--- a/public_html/sr-RS/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/sr-RS/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/sr-RS/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:46</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/sr-RS/opds-Fedora_Security_Team.xml b/public_html/sr-RS/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..ebea222
--- /dev/null
+++ b/public_html/sr-RS/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/sr-RS/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/sr-RS/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:06</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>sr-RS</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/sr-RS/opds.xml b/public_html/sr-RS/opds.xml
index 75d3657..474018f 100644
--- a/public_html/sr-RS/opds.xml
+++ b/public_html/sr-RS/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/sr-RS/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:46</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/sr-RS/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:46</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>sr-RS</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/sr-RS/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:46</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>sr-RS</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/sr-RS/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:46</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>sr-RS</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/sr-RS/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:46</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>sr-RS</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/sr-RS/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:46</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>sr-RS</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/sr-RS/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:06</updated>
+    <dc:language>sr-RS</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/sr-RS/toc.html b/public_html/sr-RS/toc.html
index 4213240..0d9d36e 100644
--- a/public_html/sr-RS/toc.html
+++ b/public_html/sr-RS/toc.html
@@ -1598,6 +1598,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/sv-SE/Site_Statistics.html b/public_html/sv-SE/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/sv-SE/Site_Statistics.html
+++ b/public_html/sv-SE/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/sv-SE/opds-Community_Services_Infrastructure.xml b/public_html/sv-SE/opds-Community_Services_Infrastructure.xml
index ef3c2b9..08104cf 100644
--- a/public_html/sv-SE/opds-Community_Services_Infrastructure.xml
+++ b/public_html/sv-SE/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/sv-SE/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:46</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/sv-SE/opds-Defensive_Coding.xml b/public_html/sv-SE/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..ae7f19a
--- /dev/null
+++ b/public_html/sv-SE/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/sv-SE/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/sv-SE/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:09</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>sv-SE</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/sv-SE/opds-Fedora.xml b/public_html/sv-SE/opds-Fedora.xml
index 09570df..54f0561 100644
--- a/public_html/sv-SE/opds-Fedora.xml
+++ b/public_html/sv-SE/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/sv-SE/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:46</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/sv-SE/opds-Fedora_Contributor_Documentation.xml b/public_html/sv-SE/opds-Fedora_Contributor_Documentation.xml
index 7b18b8a..c39de97 100644
--- a/public_html/sv-SE/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/sv-SE/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/sv-SE/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:46</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/sv-SE/opds-Fedora_Core.xml b/public_html/sv-SE/opds-Fedora_Core.xml
index 3315f10..24a626d 100644
--- a/public_html/sv-SE/opds-Fedora_Core.xml
+++ b/public_html/sv-SE/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/sv-SE/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:46</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/sv-SE/opds-Fedora_Draft_Documentation.xml b/public_html/sv-SE/opds-Fedora_Draft_Documentation.xml
index d2eac40..4631e37 100644
--- a/public_html/sv-SE/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/sv-SE/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/sv-SE/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:46</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/sv-SE/opds-Fedora_Security_Team.xml b/public_html/sv-SE/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..12a5aee
--- /dev/null
+++ b/public_html/sv-SE/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/sv-SE/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/sv-SE/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:06</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>sv-SE</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/sv-SE/opds.xml b/public_html/sv-SE/opds.xml
index 16c1619..650758b 100644
--- a/public_html/sv-SE/opds.xml
+++ b/public_html/sv-SE/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/sv-SE/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:46</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/sv-SE/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:46</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>sv-SE</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/sv-SE/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:46</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>sv-SE</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/sv-SE/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:46</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>sv-SE</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/sv-SE/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:46</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>sv-SE</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/sv-SE/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:46</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>sv-SE</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/sv-SE/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:06</updated>
+    <dc:language>sv-SE</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/sv-SE/toc.html b/public_html/sv-SE/toc.html
index 2f7b0dd..e68dfd3 100644
--- a/public_html/sv-SE/toc.html
+++ b/public_html/sv-SE/toc.html
@@ -1634,6 +1634,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/ta-IN/Site_Statistics.html b/public_html/ta-IN/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/ta-IN/Site_Statistics.html
+++ b/public_html/ta-IN/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/ta-IN/opds-Community_Services_Infrastructure.xml b/public_html/ta-IN/opds-Community_Services_Infrastructure.xml
index 6ef3776..5b743d5 100644
--- a/public_html/ta-IN/opds-Community_Services_Infrastructure.xml
+++ b/public_html/ta-IN/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ta-IN/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:46</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ta-IN/opds-Defensive_Coding.xml b/public_html/ta-IN/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..6a0f5b9
--- /dev/null
+++ b/public_html/ta-IN/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/ta-IN/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/ta-IN/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:09</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>ta-IN</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/ta-IN/opds-Fedora.xml b/public_html/ta-IN/opds-Fedora.xml
index 665e132..f3cf2fc 100644
--- a/public_html/ta-IN/opds-Fedora.xml
+++ b/public_html/ta-IN/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ta-IN/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:46</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ta-IN/opds-Fedora_Contributor_Documentation.xml b/public_html/ta-IN/opds-Fedora_Contributor_Documentation.xml
index 74198b1..5ea934d 100644
--- a/public_html/ta-IN/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/ta-IN/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ta-IN/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:46</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ta-IN/opds-Fedora_Core.xml b/public_html/ta-IN/opds-Fedora_Core.xml
index ef0fe13..0d42a35 100644
--- a/public_html/ta-IN/opds-Fedora_Core.xml
+++ b/public_html/ta-IN/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ta-IN/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:46</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ta-IN/opds-Fedora_Draft_Documentation.xml b/public_html/ta-IN/opds-Fedora_Draft_Documentation.xml
index f047940..11823d6 100644
--- a/public_html/ta-IN/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/ta-IN/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/ta-IN/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:46</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/ta-IN/opds-Fedora_Security_Team.xml b/public_html/ta-IN/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..0172a25
--- /dev/null
+++ b/public_html/ta-IN/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/ta-IN/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/ta-IN/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:06</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>ta-IN</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/ta-IN/opds.xml b/public_html/ta-IN/opds.xml
index fc38be0..96e2ea8 100644
--- a/public_html/ta-IN/opds.xml
+++ b/public_html/ta-IN/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/ta-IN/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:47</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/ta-IN/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:46</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>ta-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/ta-IN/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:46</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>ta-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/ta-IN/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:46</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>ta-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/ta-IN/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:46</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>ta-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/ta-IN/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:46</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>ta-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/ta-IN/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:06</updated>
+    <dc:language>ta-IN</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/ta-IN/toc.html b/public_html/ta-IN/toc.html
index 134df59..bb22057 100644
--- a/public_html/ta-IN/toc.html
+++ b/public_html/ta-IN/toc.html
@@ -1589,6 +1589,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/te-IN/Site_Statistics.html b/public_html/te-IN/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/te-IN/Site_Statistics.html
+++ b/public_html/te-IN/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/te-IN/opds-Community_Services_Infrastructure.xml b/public_html/te-IN/opds-Community_Services_Infrastructure.xml
index fc769b7..b812964 100644
--- a/public_html/te-IN/opds-Community_Services_Infrastructure.xml
+++ b/public_html/te-IN/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/te-IN/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:47</updated>
+  <updated>2013-03-12T03:13:06</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/te-IN/opds-Defensive_Coding.xml b/public_html/te-IN/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..825e836
--- /dev/null
+++ b/public_html/te-IN/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/te-IN/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/te-IN/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:10</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>te-IN</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/te-IN/opds-Fedora.xml b/public_html/te-IN/opds-Fedora.xml
index 70fbdc5..9d38f8a 100644
--- a/public_html/te-IN/opds-Fedora.xml
+++ b/public_html/te-IN/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/te-IN/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:47</updated>
+  <updated>2013-03-12T03:13:07</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/te-IN/opds-Fedora_Contributor_Documentation.xml b/public_html/te-IN/opds-Fedora_Contributor_Documentation.xml
index 9ee8d9c..1c77f71 100644
--- a/public_html/te-IN/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/te-IN/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/te-IN/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:47</updated>
+  <updated>2013-03-12T03:13:07</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/te-IN/opds-Fedora_Core.xml b/public_html/te-IN/opds-Fedora_Core.xml
index d4c99ce..d2aa8f8 100644
--- a/public_html/te-IN/opds-Fedora_Core.xml
+++ b/public_html/te-IN/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/te-IN/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:47</updated>
+  <updated>2013-03-12T03:13:07</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/te-IN/opds-Fedora_Draft_Documentation.xml b/public_html/te-IN/opds-Fedora_Draft_Documentation.xml
index 3c8f7b9..0e901b9 100644
--- a/public_html/te-IN/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/te-IN/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/te-IN/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:47</updated>
+  <updated>2013-03-12T03:13:07</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/te-IN/opds-Fedora_Security_Team.xml b/public_html/te-IN/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..c8f8811
--- /dev/null
+++ b/public_html/te-IN/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/te-IN/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/te-IN/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:07</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>te-IN</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/te-IN/opds.xml b/public_html/te-IN/opds.xml
index ee41f35..32b7cd7 100644
--- a/public_html/te-IN/opds.xml
+++ b/public_html/te-IN/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/te-IN/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:47</updated>
+  <updated>2013-03-12T03:13:07</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/te-IN/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:47</updated>
+    <updated>2013-03-12T03:13:06</updated>
     <dc:language>te-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/te-IN/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:47</updated>
+    <updated>2013-03-12T03:13:07</updated>
     <dc:language>te-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/te-IN/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:47</updated>
+    <updated>2013-03-12T03:13:07</updated>
     <dc:language>te-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/te-IN/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:47</updated>
+    <updated>2013-03-12T03:13:07</updated>
     <dc:language>te-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/te-IN/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:47</updated>
+    <updated>2013-03-12T03:13:07</updated>
     <dc:language>te-IN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/te-IN/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:07</updated>
+    <dc:language>te-IN</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/te-IN/toc.html b/public_html/te-IN/toc.html
index dfb63ac..62c59a4 100644
--- a/public_html/te-IN/toc.html
+++ b/public_html/te-IN/toc.html
@@ -1589,6 +1589,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/toc.html b/public_html/toc.html
index 61731f1..61ba0f1 100644
--- a/public_html/toc.html
+++ b/public_html/toc.html
@@ -3692,6 +3692,30 @@
 			</div>					
 		</div>					
        		
+		<div class="product">
+			<span id="Fedora_Security_Team" class="product">Fedora Security Team</span>
+			<div class="versions">
+								<div class="books">
+					
+						<div class="book">
+							<span id="Defensive_Coding" class="book">Defensive Coding</span> 
+							<div class="types">
+							
+								<a class="type" href="./en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">epub</a>
+			        			
+								<a class="type" href="./en-US/Fedora_Security_Team//html/Defensive_Coding/index.html">html</a>
+			        			
+								<a class="type" href="./en-US/Fedora_Security_Team//html-single/Defensive_Coding/index.html">html-single</a>
+			        			
+								<a class="type" href="./en-US/Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf">pdf</a>
+			        			
+							</div>
+						</div>
+	        			
+					</div>			
+			</div>					
+		</div>					
+       		
 	</div>
 	
 	<div class="perlang" id="Español">
diff --git a/public_html/uk-UA/Site_Statistics.html b/public_html/uk-UA/Site_Statistics.html
index 6d427c4..e01904c 100644
--- a/public_html/uk-UA/Site_Statistics.html
+++ b/public_html/uk-UA/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Загалом мов: </b>45<br />
-	<b>Загалом пакунків: </b>843
+	<b>Загалом пакунків: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/uk-UA/opds-Community_Services_Infrastructure.xml b/public_html/uk-UA/opds-Community_Services_Infrastructure.xml
index af53a28..5da3c03 100644
--- a/public_html/uk-UA/opds-Community_Services_Infrastructure.xml
+++ b/public_html/uk-UA/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/uk-UA/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:47</updated>
+  <updated>2013-03-12T03:13:07</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/uk-UA/opds-Defensive_Coding.xml b/public_html/uk-UA/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..9eb0be7
--- /dev/null
+++ b/public_html/uk-UA/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/uk-UA/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/uk-UA/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:10</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>uk-UA</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/uk-UA/opds-Fedora.xml b/public_html/uk-UA/opds-Fedora.xml
index 284d55c..ac2462d 100644
--- a/public_html/uk-UA/opds-Fedora.xml
+++ b/public_html/uk-UA/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/uk-UA/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:47</updated>
+  <updated>2013-03-12T03:13:07</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/uk-UA/opds-Fedora_Contributor_Documentation.xml b/public_html/uk-UA/opds-Fedora_Contributor_Documentation.xml
index ec876da..709ce16 100644
--- a/public_html/uk-UA/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/uk-UA/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/uk-UA/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Документація для учасника розробки Fedora</title>
   <subtitle>Документація для учасника розробки Fedora</subtitle>
-  <updated>2013-03-11T21:17:47</updated>
+  <updated>2013-03-12T03:13:07</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/uk-UA/opds-Fedora_Core.xml b/public_html/uk-UA/opds-Fedora_Core.xml
index 6955e60..c005733 100644
--- a/public_html/uk-UA/opds-Fedora_Core.xml
+++ b/public_html/uk-UA/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/uk-UA/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:47</updated>
+  <updated>2013-03-12T03:13:07</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/uk-UA/opds-Fedora_Draft_Documentation.xml b/public_html/uk-UA/opds-Fedora_Draft_Documentation.xml
index 1af55f2..58244b3 100644
--- a/public_html/uk-UA/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/uk-UA/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/uk-UA/opds-Fedora_Draft_Documentation.xml</id>
   <title>Чернетки документації з Fedora</title>
   <subtitle>Чернетки документації з Fedora</subtitle>
-  <updated>2013-03-11T21:17:47</updated>
+  <updated>2013-03-12T03:13:07</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/uk-UA/opds-Fedora_Security_Team.xml b/public_html/uk-UA/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..5a924b0
--- /dev/null
+++ b/public_html/uk-UA/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/uk-UA/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/uk-UA/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:07</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>uk-UA</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/uk-UA/opds.xml b/public_html/uk-UA/opds.xml
index 66cc154..0d09313 100644
--- a/public_html/uk-UA/opds.xml
+++ b/public_html/uk-UA/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/uk-UA/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:47</updated>
+  <updated>2013-03-12T03:13:07</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/uk-UA/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:47</updated>
+    <updated>2013-03-12T03:13:07</updated>
     <dc:language>uk-UA</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/uk-UA/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:47</updated>
+    <updated>2013-03-12T03:13:07</updated>
     <dc:language>uk-UA</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Документація для учасника розробки Fedora</title>
     <id>http://docs.fedoraproject.org/uk-UA/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:47</updated>
+    <updated>2013-03-12T03:13:07</updated>
     <dc:language>uk-UA</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/uk-UA/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:47</updated>
+    <updated>2013-03-12T03:13:07</updated>
     <dc:language>uk-UA</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Чернетки документації з Fedora</title>
     <id>http://docs.fedoraproject.org/uk-UA/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:47</updated>
+    <updated>2013-03-12T03:13:07</updated>
     <dc:language>uk-UA</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/uk-UA/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:07</updated>
+    <dc:language>uk-UA</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/uk-UA/toc.html b/public_html/uk-UA/toc.html
index 3933272..5cc2648 100644
--- a/public_html/uk-UA/toc.html
+++ b/public_html/uk-UA/toc.html
@@ -1601,6 +1601,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Не перекладено</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>Для того, щоб можна було скористатися меню навігації, слід увімкнути JavaScript.</p><p>Увімкніть JavaScript, якщо бажаєте користуватися меню навігації.</p><p>Вимкніть CSS, щоб переглянути пункти меню навігації без вмикання JavaScript.</p>
 	</div>
diff --git a/public_html/zh-CN/Site_Statistics.html b/public_html/zh-CN/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/zh-CN/Site_Statistics.html
+++ b/public_html/zh-CN/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/zh-CN/opds-Community_Services_Infrastructure.xml b/public_html/zh-CN/opds-Community_Services_Infrastructure.xml
index 1f51373..0d530fc 100644
--- a/public_html/zh-CN/opds-Community_Services_Infrastructure.xml
+++ b/public_html/zh-CN/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/zh-CN/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:47</updated>
+  <updated>2013-03-12T03:13:07</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/zh-CN/opds-Defensive_Coding.xml b/public_html/zh-CN/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..857670e
--- /dev/null
+++ b/public_html/zh-CN/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/zh-CN/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/zh-CN/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:10</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>zh-CN</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/zh-CN/opds-Fedora.xml b/public_html/zh-CN/opds-Fedora.xml
index 9578425..9957fed 100644
--- a/public_html/zh-CN/opds-Fedora.xml
+++ b/public_html/zh-CN/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/zh-CN/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:47</updated>
+  <updated>2013-03-12T03:13:07</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/zh-CN/opds-Fedora_Contributor_Documentation.xml b/public_html/zh-CN/opds-Fedora_Contributor_Documentation.xml
index 55d2388..8dde179 100644
--- a/public_html/zh-CN/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/zh-CN/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/zh-CN/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:47</updated>
+  <updated>2013-03-12T03:13:07</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/zh-CN/opds-Fedora_Core.xml b/public_html/zh-CN/opds-Fedora_Core.xml
index 96e58ee..c03c47d 100644
--- a/public_html/zh-CN/opds-Fedora_Core.xml
+++ b/public_html/zh-CN/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/zh-CN/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:47</updated>
+  <updated>2013-03-12T03:13:07</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/zh-CN/opds-Fedora_Draft_Documentation.xml b/public_html/zh-CN/opds-Fedora_Draft_Documentation.xml
index 7e2bb91..90bbc81 100644
--- a/public_html/zh-CN/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/zh-CN/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/zh-CN/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:47</updated>
+  <updated>2013-03-12T03:13:07</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/zh-CN/opds-Fedora_Security_Team.xml b/public_html/zh-CN/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..9be7131
--- /dev/null
+++ b/public_html/zh-CN/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/zh-CN/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/zh-CN/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:07</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>zh-CN</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/zh-CN/opds.xml b/public_html/zh-CN/opds.xml
index 75f7694..2251c7c 100644
--- a/public_html/zh-CN/opds.xml
+++ b/public_html/zh-CN/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/zh-CN/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:48</updated>
+  <updated>2013-03-12T03:13:07</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/zh-CN/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:47</updated>
+    <updated>2013-03-12T03:13:07</updated>
     <dc:language>zh-CN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/zh-CN/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:47</updated>
+    <updated>2013-03-12T03:13:07</updated>
     <dc:language>zh-CN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/zh-CN/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:47</updated>
+    <updated>2013-03-12T03:13:07</updated>
     <dc:language>zh-CN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/zh-CN/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:47</updated>
+    <updated>2013-03-12T03:13:07</updated>
     <dc:language>zh-CN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/zh-CN/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:47</updated>
+    <updated>2013-03-12T03:13:07</updated>
     <dc:language>zh-CN</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/zh-CN/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:07</updated>
+    <dc:language>zh-CN</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/zh-CN/toc.html b/public_html/zh-CN/toc.html
index ab7e836..634e5d1 100644
--- a/public_html/zh-CN/toc.html
+++ b/public_html/zh-CN/toc.html
@@ -1659,6 +1659,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>
diff --git a/public_html/zh-TW/Site_Statistics.html b/public_html/zh-TW/Site_Statistics.html
index 200e8cd..9620dc4 100644
--- a/public_html/zh-TW/Site_Statistics.html
+++ b/public_html/zh-TW/Site_Statistics.html
@@ -25,10 +25,10 @@
 	<tr>
 		<td>English</td>
 		<td>en-US</td>
-		<td>5</td>
-		<td>41</td>
+		<td>6</td>
+		<td>42</td>
 		<td>21</td>
-		<td>144</td>
+		<td>145</td>
 	</tr>
 	
 	<tr>
@@ -430,7 +430,7 @@
 </table>
 <div class="totals">
 	<b>Total Languages: </b>45<br />
-	<b>Total Packages: </b>843
+	<b>Total Packages: </b>844
 </div>
 </body>
 </html>
diff --git a/public_html/zh-TW/opds-Community_Services_Infrastructure.xml b/public_html/zh-TW/opds-Community_Services_Infrastructure.xml
index 335491f..d3e13f4 100644
--- a/public_html/zh-TW/opds-Community_Services_Infrastructure.xml
+++ b/public_html/zh-TW/opds-Community_Services_Infrastructure.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/zh-TW/opds-Community_Services_Infrastructure.xml</id>
   <title>Community Services Infrastructure</title>
   <subtitle>Community Services Infrastructure</subtitle>
-  <updated>2013-03-11T21:17:48</updated>
+  <updated>2013-03-12T03:13:07</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/zh-TW/opds-Defensive_Coding.xml b/public_html/zh-TW/opds-Defensive_Coding.xml
new file mode 100644
index 0000000..4f74a4a
--- /dev/null
+++ b/public_html/zh-TW/opds-Defensive_Coding.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/zh-TW/opds-Defensive_Coding.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/zh-TW/opds-Defensive_Coding.xml</id>
+  <title>Defensive Coding</title>
+  <subtitle>Defensive Coding</subtitle>
+  <updated>2013-03-12T03:09:10</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>zh-TW</dc:language>
+    <category label="1" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Defensive_Coding/1/epub/Defensive_Coding/Defensive_Coding-1-Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/zh-TW/opds-Fedora.xml b/public_html/zh-TW/opds-Fedora.xml
index fcbacc9..b640887 100644
--- a/public_html/zh-TW/opds-Fedora.xml
+++ b/public_html/zh-TW/opds-Fedora.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/zh-TW/opds-Fedora.xml</id>
   <title>Fedora</title>
   <subtitle>Fedora</subtitle>
-  <updated>2013-03-11T21:17:48</updated>
+  <updated>2013-03-12T03:13:07</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/zh-TW/opds-Fedora_Contributor_Documentation.xml b/public_html/zh-TW/opds-Fedora_Contributor_Documentation.xml
index 7ace358..4d0c2b8 100644
--- a/public_html/zh-TW/opds-Fedora_Contributor_Documentation.xml
+++ b/public_html/zh-TW/opds-Fedora_Contributor_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/zh-TW/opds-Fedora_Contributor_Documentation.xml</id>
   <title>Fedora Contributor Documentation</title>
   <subtitle>Fedora Contributor Documentation</subtitle>
-  <updated>2013-03-11T21:17:48</updated>
+  <updated>2013-03-12T03:13:07</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/zh-TW/opds-Fedora_Core.xml b/public_html/zh-TW/opds-Fedora_Core.xml
index fc1f8a1..56731cc 100644
--- a/public_html/zh-TW/opds-Fedora_Core.xml
+++ b/public_html/zh-TW/opds-Fedora_Core.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/zh-TW/opds-Fedora_Core.xml</id>
   <title>Fedora Core</title>
   <subtitle>Fedora Core</subtitle>
-  <updated>2013-03-11T21:17:48</updated>
+  <updated>2013-03-12T03:13:07</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/zh-TW/opds-Fedora_Draft_Documentation.xml b/public_html/zh-TW/opds-Fedora_Draft_Documentation.xml
index 7a2cb4d..41b1494 100644
--- a/public_html/zh-TW/opds-Fedora_Draft_Documentation.xml
+++ b/public_html/zh-TW/opds-Fedora_Draft_Documentation.xml
@@ -6,7 +6,7 @@
   <id>http://docs.fedoraproject.org/zh-TW/opds-Fedora_Draft_Documentation.xml</id>
   <title>Fedora Draft Documentation</title>
   <subtitle>Fedora Draft Documentation</subtitle>
-  <updated>2013-03-11T21:17:48</updated>
+  <updated>2013-03-12T03:13:07</updated>
   <!--author>
     <name></name>
     <uri></uri>
diff --git a/public_html/zh-TW/opds-Fedora_Security_Team.xml b/public_html/zh-TW/opds-Fedora_Security_Team.xml
new file mode 100644
index 0000000..2272d0d
--- /dev/null
+++ b/public_html/zh-TW/opds-Fedora_Security_Team.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom"
+      xmlns:dc="http://purl.org/dc/terms/"
+      xmlns:opds="http://opds-spec.org/2010/catalog">
+  <link rel="self"  href="http://docs.fedoraproject.org/zh-TW/opds-Fedora_Security_Team.xml" type="application/atom+xml;type=feed;profile=opds-catalog"/>
+  <id>http://docs.fedoraproject.org/zh-TW/opds-Fedora_Security_Team.xml</id>
+  <title>Fedora Security Team</title>
+  <subtitle>Fedora Security Team</subtitle>
+  <updated>2013-03-12T03:13:07</updated>
+  <!--author>
+    <name></name>
+    <uri></uri>
+  </author-->
+
+  <entry>
+    <title>Defensive Coding</title>
+    <id>http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub</id>
+    <!--author>
+      <name></name>
+      <uri></uri>
+    </author-->
+    <updated>2013-03-12</updated>
+    <dc:language>zh-TW</dc:language>
+    <category label="" scheme="http://lexcycle.com/stanza/header" term="free"/>
+    <!--dc:issued></dc:issued-->
+    <summary>A Guide to Improving Software Security</summary>
+    <content type="text">This document provides guidelines for improving software security through secure coding. It covers common programming languages and libraries, and focuses on concrete recommendations.</content>
+    <link type="application/epub+zip" rel="http://opds-spec.org/acquisition" href="http://docs.fedoraproject.org/en-US/Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub">
+      <dc:format>application/epub+zip</dc:format>
+    </link>      
+    <!--link type="application/atom+xml;type=entry" href="" rel="alternate" title="Full entry"/-->
+ </entry>
+</feed>
diff --git a/public_html/zh-TW/opds.xml b/public_html/zh-TW/opds.xml
index 61dbff0..735bca7 100644
--- a/public_html/zh-TW/opds.xml
+++ b/public_html/zh-TW/opds.xml
@@ -6,7 +6,7 @@
   <link rel="http://opds-spec.org/crawlable" type="application/atom+xml" href="http://bookserver.archive.org/catalog/crawlable" title="Crawlable feed"/>
   <id>http://docs.fedoraproject.org/zh-TW/opds.xml</id>
   <title>Product List</title>
-  <updated>2013-03-11T21:17:48</updated>
+  <updated>2013-03-12T03:13:07</updated>
   <!--author>
     <name></name>
     <uri></uri>
@@ -15,7 +15,7 @@
   <entry>
     <title>Community Services Infrastructure</title>
     <id>http://docs.fedoraproject.org/zh-TW/Community_Services_Infrastructure/opds-Community_Services_Infrastructure.xml</id>
-    <updated>2013-03-11T21:17:48</updated>
+    <updated>2013-03-12T03:13:07</updated>
     <dc:language>zh-TW</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Community_Services_Infrastructure.xml"/>
@@ -23,7 +23,7 @@
   <entry>
     <title>Fedora</title>
     <id>http://docs.fedoraproject.org/zh-TW/Fedora/opds-Fedora.xml</id>
-    <updated>2013-03-11T21:17:48</updated>
+    <updated>2013-03-12T03:13:07</updated>
     <dc:language>zh-TW</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora.xml"/>
@@ -31,7 +31,7 @@
   <entry>
     <title>Fedora Contributor Documentation</title>
     <id>http://docs.fedoraproject.org/zh-TW/Fedora_Contributor_Documentation/opds-Fedora_Contributor_Documentation.xml</id>
-    <updated>2013-03-11T21:17:48</updated>
+    <updated>2013-03-12T03:13:07</updated>
     <dc:language>zh-TW</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Contributor_Documentation.xml"/>
@@ -39,7 +39,7 @@
   <entry>
     <title>Fedora Core</title>
     <id>http://docs.fedoraproject.org/zh-TW/Fedora_Core/opds-Fedora_Core.xml</id>
-    <updated>2013-03-11T21:17:48</updated>
+    <updated>2013-03-12T03:13:07</updated>
     <dc:language>zh-TW</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Core.xml"/>
@@ -47,9 +47,17 @@
   <entry>
     <title>Fedora Draft Documentation</title>
     <id>http://docs.fedoraproject.org/zh-TW/Fedora_Draft_Documentation/opds-Fedora_Draft_Documentation.xml</id>
-    <updated>2013-03-11T21:17:48</updated>
+    <updated>2013-03-12T03:13:07</updated>
     <dc:language>zh-TW</dc:language>
     <content type="text"></content>
     <link type="application/atom+xml" href="opds-Fedora_Draft_Documentation.xml"/>
  </entry>
+  <entry>
+    <title>Fedora Security Team</title>
+    <id>http://docs.fedoraproject.org/zh-TW/Fedora_Security_Team/opds-Fedora_Security_Team.xml</id>
+    <updated>2013-03-12T03:13:07</updated>
+    <dc:language>zh-TW</dc:language>
+    <content type="text"></content>
+    <link type="application/atom+xml" href="opds-Fedora_Security_Team.xml"/>
+ </entry>
 </feed>
diff --git a/public_html/zh-TW/toc.html b/public_html/zh-TW/toc.html
index 161f4c6..f8fa9fd 100644
--- a/public_html/zh-TW/toc.html
+++ b/public_html/zh-TW/toc.html
@@ -1589,6 +1589,28 @@
 			</div>					
 		</div>					
 	</div>					
+	<div class="product collapsed" onclick="toggle(event, 'Fedora_Security_Team');work=1;">
+		<span class="product">Fedora Security Team</span>
+		<div id='Fedora_Security_Team' class="versions hidden">
+			<div id='Fedora_Security_Team.' class="version collapsed" onclick="toggle(event, 'Fedora_Security_Team..books');">				<div id='Fedora_Security_Team..books' class="books">
+					<div id='Fedora_Security_Team.' class="version collapsed untranslated" onclick="toggle(event, 'Fedora_Security_Team..untrans_books');">
+						<span class="version">Untranslated</span>
+						<div id='Fedora_Security_Team..untrans_books' class="books hidden">
+							<div id='Fedora_Security_Team..Defensive_Coding' class="book collapsed" onclick="toggle(event, 'Fedora_Security_Team..Defensive_Coding.types');">
+								<a class="type" href="../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/Fedora_Security_Team//html/Defensive_Coding/index.html'"><span class="book">Defensive Coding</span></a> 
+								<div id='Fedora_Security_Team..Defensive_Coding.types' class="types hidden" onclick="work=0;">
+									<a class="type" href="../en-US/./Fedora_Security_Team//epub/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.epub" >epub</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html/Defensive_Coding/index.html';return false;">html</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html" onclick="window.top.location='../en-US/./Fedora_Security_Team//html-single/Defensive_Coding/index.html';return false;">html-single</a>
+									<a class="type" href="../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf" onclick="window.top.location='../en-US/./Fedora_Security_Team//pdf/Defensive_Coding/Fedora_Security_Team--Defensive_Coding-en-US.pdf';return false;">pdf</a>
+								</div>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>					
+		</div>					
+	</div>					
 	<div class="nocookie" id="nojs">
 		<p>The Navigation Menu above requires JavaScript to function.</p><p>Enable JavaScript to allow the Navigation Menu to function.</p><p>Disable CSS to view the Navigation options without JavaScript enabled</p>
 	</div>


More information about the docs-commits mailing list