RED

RHSA-2019:0201-低危: systemd 安全更新

允我心安 提交于 2021-02-18 13:44:38
[root@localhost ~]# cat /etc/redhat- release CentOS Linux release 7.2 . 1511 (Core) 修复命令: 使用root账号登陆Shell,键入以下代码回车: Centos/RedHat: yum update -y Ubuntu:apt-get update -y 命令完成需重启系统:reboot 验证修复: 登陆阿里云云中心管理控制台,逐个验证修复即可。 RHSA-2019:0201-低危: systemd 安全更新 漏洞编号 影响分 漏洞公告 CVE-2018-16864 7.4 systemd在使用long cmdline的命令调用syslog时堆栈溢出 CVE-2019-3815 3.3 journald-server.c内存泄漏 从漏洞详细描述页面可知: (1)漏洞:systemd在使用long cmdline的命令调用syslog时堆栈溢出 当具有长命令行参数的程序调用syslog时,在systemd-journald中发现了无限制的内存分配,这可能导致堆栈与另一个内存区域发生冲突。本地攻击者可能会使用此漏洞来破坏systemd-journald或升级权限。 (2)漏洞:修复为CVE-2018-16864引入的journald-server.c中的内存泄漏 在Red Hat Enterprise

红黑树详解

拜拜、爱过 提交于 2021-02-18 08:25:22
1.为什么需要红黑树? 对于二叉搜索树,如果插入的数据是随机的,那么它就是接近平衡的二叉树,平衡的二叉树,它的操作效率(查询,插入,删除)效率较高,时间复杂度是O(logN)。但是可能会出现一种极端的情况,那就是插入的数据是有序的(递增或者递减),那么所有的节点都会在根节点的右侧或左侧,此时,二叉搜索树就变为了一个链表,它的操作效率就降低了,时间复杂度为O(N),所以可以认为二叉搜索树的时间复杂度介于O(logN)和O(N)之间,视情况而定。那么为了应对这种极端情况,红黑树就出现了,它是具备了某些特性的二叉搜索树,能解决非平衡树问题,红黑树是一种接近平衡的二叉树。 2.红黑树的特性有哪些? 首先,红黑树是一个二叉搜索树,它同时满足以下特性: (1) 每个节点要么是黑色,要么是红色 (2) 根节点是黑色 (3) 如果节点是红色的,那么它的子节点必须是黑色的(反之,不一定需要成立) (4) 从根节点到叶节点或空子节点的每条路径,都包含相同数目的黑色节 通过看图来理解以上四个特性 3.红黑树的效率 红黑树的查找,插入和删除操作,时间复杂度都是O(logN)。查找操作时,它和普通的相对平衡的二叉搜索树的效率相同,都是通过相同的方式来查找的,没有用到红黑树特有的特性。但,如果插入的时候是有序数据,那么红黑树的查询效率就比二叉搜索树要高了,因为此时二叉搜索树不是平衡树,它的时间复杂度O(N)

CMake学习笔记一:初识cmake

时光总嘲笑我的痴心妄想 提交于 2021-02-18 01:56:59
1 cmake简介 1.1 背景知识 cmake 是 kitware 公司以及一些开源开发者在开发几个工具套件(VTK)的过程中衍生品,最终形成体系,成为一个独立的开放源代码项目。项目的诞生时间是 2001 年。其官方网站是 www.cmake.org,可以通过访问官方网站获得更多关于 cmake 的信息。cmake的流行其实要归功于 KDE4 的开发,在 KDE 开发者使用了近 10 年 autotools之后,他们终于决定为 KDE4 选择一个新的工程构建工具,其根本原因用 KDE 开发者的话来说就是:只有少数几个“编译专家”能够掌握 KDE 现在的构建体系。在经历了 unsermake,scons 以及 cmake 的选型和尝试之后,KDE4 决定使用 cmake 作为自己的构建系统。在迁移过程中,进展异常的顺利,并获得了 cmake 开发者的支持。所以,目前的 KDE4 开发版本已经完全使用 cmake 来进行构建。像 kdesvn,rosegarden 等项目也开始使用 cmake,这也注定了 cmake 必然会成为一个主流的构建体系。 1.2 特点   a. 开放源代码 ,使用类 BSD 许可发布。 http://cmake.org/HTML/Copyright.html   b. 跨平台 ,并可生成 native 编译配置文件,在 Linux/Unix 平台,生成

Codeforces 1108D

冷暖自知 提交于 2021-02-17 23:53:09
题目链接: http://codeforces.com/problemset/problem/1108/D time limit per test  1 second memory limit per test  256 megabytes input  standard input output  standard output You have a garland consisting of n lamps. Each lamp is colored red, green or blue. The color of the i-th lamp is si ('R', 'G' and 'B' — colors of lamps in the garland). You have to recolor some lamps in this garland (recoloring a lamp means changing its initial color to another) in such a way that the obtained garland is diverse. A garland is called diverse if any two adjacent (consecutive) lamps (i. e. such lamps that the

css动画

元气小坏坏 提交于 2021-02-17 22:31:11
动画 transition:all .5s ease-in .2s; 过渡属性 transition-property 通过鼠标的单击、获得焦点,被点击或对元素任何改变中触发,并平滑地以动画效果改变CSS的属性值。 在CSS中创建简单的过渡效果可以从以下几个步骤来实现: 第一,在默认样式中声明元素的初始状态样式; 第二,声明过渡元素最终状态样式,比如悬浮状态; 第三,在默认样式中通过添加过渡函数,添加一些不同的样式。 CSS3的过度transition属性是一个复合属性,主要包括以下几个子属性: transition-property:指定过渡或动态模拟的CSS属性 transition-duration:指定完成过渡所需的时间 transition-timing-function:指定过渡函数 transition-delay:指定开始出现的延迟时间 例如:a{ transition: background 0.8s ease-in 0.3,color 0.6s ease-out 0.3;} 1.Keyframes介绍 Keyframes被称为关键帧,其类似于Flash中的关键帧。在CSS3中其主要以“@keyframes”开头, 后面紧跟着是动画名称加上一对花括号“{…}”,括号中就是一些不同时间段样式规则。 @keyframes changecolor{ 0%{

lab 颜色模式的生理原因 黄色, 洋红色 刺眼。 绿色,蓝色,不刺眼。

谁都会走 提交于 2021-02-17 19:38:24
hsb 颜色模式理解了。 lab 颜色模式,都说是生理原因。没说是啥生理原因。 猜测:黄色, 洋红色 刺眼。 绿色,蓝色,不刺眼。 https://blog.csdn.net/self_mind/article/details/50679836 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/self_mind/article/details/50679836 RGB颜色空间 RGB颜色是红色(Red)、绿色(Green)和蓝色(Blue)三基色的字母缩写。RGB色彩模式是通过三种基本颜色的不同程度的迭加来产生各种各样的不同颜色。这个标准能够涵盖人类视力所能感知的所有颜色,是目前运用广泛的颜色系统之一。 RGB(red,green,blue)颜色空间最常用的用途就是显示器系统,彩色阴极射线管,彩色光栅图形的显示器 都使用R、G、B数值来驱动R、G、B 电子枪发射电子,并分别激发荧光屏上的R、G、B三种颜色的荧光粉 发出不同亮度的光线,并通过相加混合产生各种颜色;扫描仪也是通过吸收原稿经反射或透射而发送来 的光线中的R、G、B成分,并用它来表示原稿的颜色。RGB色彩空间称为与设备相关的色彩空间,因为不同 的扫描仪扫描同一幅图像,会得到不同色彩的图像数据

TreeMap----的实现原理(红黑树)

半腔热情 提交于 2021-02-17 17:01:42
TreeMap的实现是红黑树算法的实现,所以要了解TreeMap就必须对红黑树有一定的了解,其实这篇博文的名字叫做:根据红黑树的算法来分析TreeMap的实现,但是为了与Java提高篇系列博文保持一致还是叫做TreeMap比较好。通过这篇博文你可以获得如下知识点: 1、红黑树的基本概念。 2、红黑树增加节点、删除节点的实现过程。 3、红黑树左旋转、右旋转的复杂过程。 4、Java 中TreeMap是如何通过put、deleteEntry两个来实现红黑树增加、删除节点的。 我想通过这篇博文你对TreeMap一定有了更深的认识。好了,下面先简单普及红黑树知识。 一、红黑树简介 红黑树又称红-黑二叉树,它首先是一颗二叉树,它具体二叉树所有的特性。同时红黑树更是一颗自平衡的排序二叉树。 我们知道一颗基本的二叉树他们都需要满足一个基本性质--即树中的任何节点的值大于它的左子节点,且小于它的右子节点。按照这个基本性质使得树的检索效率大大提高。我们知道在生成二叉树的过程是非常容易失衡的,最坏的情况就是一边倒(只有右/左子树),这样势必会导致二叉树的检索效率大大降低(O(n)),所以为了维持二叉树的平衡,大牛们提出了各种实现的算法,如: AVL , SBT , 伸展树 , TREAP , 红黑树 等等。 平衡二叉树必须具备如下特性:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1

史上最详细的HashMap红黑树解析

放肆的年华 提交于 2021-02-17 13:37:02
简介:请允许我当一回标题党。好了,言归正传,本篇主要内容便是介绍HashMap的男二号——TreeNode(男一号还是给Node吧,毕竟是TreeNode的爷爷,而且普通节点一般来说也比TreeNode要多),本篇主要从以下几个方面介绍:1. ... 请允许我当一回标题党。 好了,言归正传,本篇主要内容便是介绍HashMap的男二号——TreeNode(男一号还是给Node吧,毕竟是TreeNode的爷爷,而且普通节点一般来说也比TreeNode要多),本篇主要从以下几个方面介绍: 1.红黑树介绍 2.TreeNode结构 3.树化的过程 4.红黑树的左旋和右旋 5.TreeNode的左旋和右旋 6.红黑树的插入 7.TreeNode的插入 8.红黑树的删除 9.TreeNode的删除 讲解红黑树的部分算是理论部分,讲解TreeNode的部分则是代码实践部分,配合服用效果更加。 保守估计,仔细食用本篇大约需要半小时,请各位细细品尝。 红黑树介绍 什么是红黑树?嗯,首先,它是一颗树,所谓的树,便是长的像这样的东西 不像树?emmmm,你把它想象成一颗倒过来的树就好了,A~H都是树的节点,每个节点有零个或者多个子节点,或者说多个孩子,但除了根节点以外,每个节点都只有一个父节点,也称只有一个父亲(老王嘿嘿一笑)。 最上面的A是根节点,最下面的D、H、F、G是叶子节点

史上最清晰的红黑树讲解(下)

大兔子大兔子 提交于 2021-02-17 13:17:29
本文github地址 上一篇文章 史上最清晰的红黑树讲解(上) 对Java TreeMap 的插入以及插入之后的调整过程给出了详述。 本文接着以Java TreeMap 为例,从源码层面讲解红黑树的删除,以及删除之后的调整过程 。如果还没有看过上一篇文章,请在阅读本文之前大致浏览一下前文,以方便理解。 寻找节点后继 对于一棵二叉查找树,给定节点t,其后继(树种比大于t的最小的那个元素)可以通过如下方式找到: t的右子树不空,则t的后继是其右子树中最小的那个元素。 t的右孩子为空,则t的后继是其第一个向左走的祖先。 后继节点在红黑树的删除操作中将会用到。 TreeMap 中寻找节点后继的代码如下: // 寻找节点后继函数successor() static <K,V> TreeMap.Entry<K,V> successor(Entry<K,V> t) { if (t == null) return null; else if (t.right != null) {// 1. t的右子树不空,则t的后继是其右子树中最小的那个元素 Entry<K,V> p = t.right; while (p.left != null) p = p.left; return p; } else {// 2. t的右孩子为空,则t的后继是其第一个向左走的祖先 Entry<K,V> p = t

linux 互斥锁和条件变量

為{幸葍}努か 提交于 2021-02-17 12:27:13
为什么有条件变量? 请参看 一个线程等待某种事件发生 注意:本文是linux c版本的条件变量和互斥锁(mutex),不是C++的。 <font color=red>mutex : mutual exclusion(相互排斥)</font> 1,互斥锁的初始化,有以下2种方式。 调用方法的初始化:互斥锁是用malloc动态分配,或者分配在内存共享区的时候使用。 不调用方法的初始化:静态分配的时候使用。 int pthread_mutex_init(pthread_mutex_t *restrict mutex, const pthread_mutexattr_t *restrict attr); pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; 返回值:成功0;失败errno 2,互斥锁的销毁 int pthread_mutex_destroy(pthread_mutex_t *mutex); 返回值:成功0;失败errno int pthread_mutex_lock(pthread_mutex_t *mutex); int pthread_mutex_trylock(pthread_mutex_t *mutex); int pthread_mutex_unlock(pthread_mutex_t *mutex); 3