nginx补丁格式说明(CVE-2016-4450为例)
nginx安全公告地址:http://nginx.org/en/security_advisories.html
CVE-2016-4450:一个特定构造的数据包,可引发nginx引用空指针,导致nginx出错造成拒绝服务攻击。
说明:
查阅代码发现nginx应该是将补丁集成到开发版(Mainline)和稳定版(Stable)中,而历史版本(legacy)并不会将补丁打上;
也就意味着更新到当前提供下的的开发版和稳定版漏洞就修复了(比如这个CVE-2016-4450),而历史版本是不会修复漏洞的原来有漏洞的依然有漏洞即便当前提供下载。
CVE-2016-4450针对1.3.9-1.9.12版本的补丁如下(//是我加的说明):
--- src/os/unix/ngx_files.c //表示问题产生在src/os/unix/ngx_files.c文件中,该行不要加到ngx_files.c文件
+++ src/os/unix/ngx_files.c //表示问题要在src/os/unix/ngx_files.c文件中修改以修复,该行不要加到ngx_files.c文件中
@@ -, +, @@ ngx_write_chain_to_file(ngx_file_t *file //-182,6表示修复前该处代码的位置为183行的后6行,+183,12表示修复后该处代码占183行的后12行
/* create the iovec and coalesce the neighbouring bufs */ while (cl && vec.nelts < IOV_MAX) {
+
+ if (ngx_buf_special(cl->buf)) { //+号表示该行代码原来没有,要新加进去;修复时+号不要加到代码中
+ cl = cl->next;
+ continue;
+ }
+
if (prev == cl->buf->pos) {
iov->iov_len += cl->buf->last - cl->buf->pos;
作为对比原来该处代码如下:

修复后代码如下:

nginx补丁格式说明(CVE-2016-4450为例)的更多相关文章
- ELK 之三:Kibana 使用与Tomcat、Nginx 日志格式处理
一:kibana安装: kibana主要是搜索elasticsearch的数据,并进行数据可视化的展现,新版使用nodejs. 1.下载地址: https://www.elastic.co/downl ...
- 运维技巧-Nginx日志格式
1.说一说 当你安装完nginx,输出的格式是比较乱的,这样我们就需要自己去定义一下,自己看着舒服的格式. 2.Nginx日志字段 $remote_addr 记录客户端IP,但她的值不是客户端提供的, ...
- Nginx 日志格式配置介绍
Nginx日志格式配置介绍 by:授客 QQ:1033553122 测试环境 CentOS 6.5-x86_64 nginx-1.10.0 配置例子 log_format main '$ ...
- diff补丁格式
title: diff补丁格式 tags: 学习 categories: 学习 date: 2018-09-20 21:03:53 --- diff补丁格式 在Uboot学习中,接触到了打补丁这个操作 ...
- Nginx - 日志格式及输出
1. 前言 在 Nginx 服务器中,如果想对日志输出进行控制还是很容易的.Nginx 服务器提供了一个 HttpLogModule 模块,可以通过它来设置日志的输出格式. 2. HttpLogMod ...
- Nginx日志格式以及相关配置
一.Nginx日志格式以及参数说明log_format main '$remote_addr - $remote_user [$time_local] "$request" ' ...
- nginx json 格式输出
log_format logstash_json '{ "@timestamp": "$time_local", ' ...
- nginx日志格式
日志格式 log_format main '$remote_addr - $remote_user [$time_local] $request ' '" ...
- nginx 日志格式
log_format main '$http_host $server_addr $remote_addr [$time_local] "$request" ' '$request ...
随机推荐
- HTML学习笔记CSS
类选择器和ID选择器的区别 1id只能用一回,类可以循环使用 2可以使用类选择器词列表方法为一个元素同时设置多个样式.我们可以为一个元素同时设多个样式,但只可以用类选择器的方法实现,ID选择器是不可以 ...
- Youtube-dl 配置 使用方法 + 配合aria2 多线程 下载 + 配合 ffmpeg 自动合并分段视频
首先介绍软件,Youtube-dl可以下载网页的视频,功能很强大. 但遇到分段视频不能合并,遇到视频音频分开播放的网站也没办法合并视频音频,所以 需要用ffmpeg来配合的合并视频.合并过程是无损的, ...
- sqlserver 中常见的函数 数学函数
create table testnum( ID int identity(1,1), num float) insert testnum values (1) insert testnum valu ...
- CentOS6.5使用yum快速搭建LAMP环境
1.安装Apache # yum -y install httpd # 开机自启动 # chkconfig httpd on # 启动httpd 服务 # service httpd start # ...
- fit_transform和transform的区别
来自:泡泡糖nana 来自:俞驰 1. fit_transform是fit和transform的组合. 2. fit(x,y)传两个参数的是有监督学习的算法,fit(x)传一个参数的是无监督学习的算法 ...
- ZZNUOJ 2022 摩斯密码
map打表存一下对应的密码 不会map感觉不好弄这题 #include<stdio.h> #include<string.h> #include<math.h> ...
- C++.【转】C++数值类型与string的相互转换
1.C++数值类型与string的相互转换 - JohnGu - 博客园.html(https://www.cnblogs.com/johngu/p/7878029.html) 2. 1.数值类型转换 ...
- R语言barplot双坐标作图
需要注意的是,设置其中的柱子的宽度,间隔的宽度.有公式如下 width为柱子的宽度 space为间隔宽度 barnumbers 为柱子数量 那么xlim的设置右侧范围为:(width + space) ...
- django数据库的增、删、改、查
1.增加 第一种:save 通过创建模型类对象,执行对象的save()方法保存到数据库中. 第二种:create 2.修改 3.查询 get 查询单一结果,如果不存在会抛出模型类.DoesNotExi ...
- lua --- 用break实现continue逻辑
循环中内嵌一个循环,然后将具体的逻辑放在内嵌循环中去处理,在内嵌循环的开始,添加一个判断语句,满足条件就跳出内嵌循环. 示例代码如下: tab = {,,,,} ,#tab do while true ...