Chen Qi [Wed, 28 Aug 2013 02:52:03 +0000 (10:52 +0800)]
runqemu-ifdown: clean up the remaining iptables rules
The iptables rules for the tap interface are added by runqemu-ifup
everytime we use runqemu to start a qemu target. But it's not cleaned
up when runqemu exits.
This patch cleans up the remaining iptables rules for the tap interface
in runqemu-ifdown.
[YOCTO #5047]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Chen Qi [Wed, 28 Aug 2013 02:52:05 +0000 (10:52 +0800)]
runqemu-internal: provide more info if a preconfigured tap is used
We should provide the user more information if a preconfigured tap
is used. This is because the user might have manually set up the tap
interface to be used by other qemu binaries.
So at a minimum, we should let the user know how to make runqemu skip
that tap interface.
[YOCTO #5047]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Chen Qi [Wed, 28 Aug 2013 02:52:04 +0000 (10:52 +0800)]
runqemu-internal: don't bring down preconfigured tap interface
runqemu-ifup and runqemu-ifdown should be pairs. If we're using a
preconfigured tap interface, the runqemu-ifdown should not be invoked
to bring it down.
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Run list-packageconfig-flags.py on wrlinux's platform in which
the oe-core layer and bitbake layer in different directories:
----
../layers/oe-core/scripts/contrib/list-packageconfig-flags.py
Traceback (most recent call last):
File "../layers/oe-core/scripts/contrib/list-packageconfig-flags.py", line 28, in <module>
import bb.cache
ImportError: No module named bb.cache
----
The script import bb module from bitbake lib dir, the previous
lib dir was hardcode and only worked on poky but not for others.
In this situation, look for bitbake/bin dir in PATH could fix this issue.
[YOCTO #5060]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
gtk+3: pull forward the gtk+2 hardcoded libtool patch
Without this, it tries to run ./libtool, not the sys-prefixed libtool, which
fails, resulting in dynamic modules being disabled, which in turn results in
compiling the immodules directly into the gtk+3 library.
I tried switching it to using $LIBTOOL rather than hardcoding the path, as
LT_INIT sets LIBTOOL, but it didn't work, I didn't have time to dig further,
and this gets the job done for now.
Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Jackie Huang [Fri, 30 Aug 2013 01:56:36 +0000 (09:56 +0800)]
remove the unnecessary protocol parameters
It's not necessary to specify the protocol parameter when it's the
default protocol for the fetcher, e.g. the default protocol for
git fetcher it git, "protocol=git" isn't needed.
Signed-off-by: Jackie Huang <jackie.huang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Stefan Stanacar [Fri, 30 Aug 2013 09:24:32 +0000 (12:24 +0300)]
lib/oeqa: move skeletoninit.py where it belongs
OE-core commit fcc59cbcdb1550489d372edf9f465efa7165245f /
poky commit 748ddc39e56623f4e48987f0467f4722f6e162f2 added a new test, but
in the wrong location.
I took the patch from Alex's branch but renamed it from meta/lib/oeqa/runtime/skeleton.py to meta/lib/oeqa/skeletoninit.py before sending. This was
unintentional, it should have been under meta/lib/oeqa/runtime.
Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Zhang Xiao [Tue, 27 Aug 2013 02:07:43 +0000 (10:07 +0800)]
libnfsidmap: Add and modify idmapd.conf
add configuration file to make rpc.idmapd to not report below error:
rpc.idmapd: Skipping configuration file "/etc/idmapd.conf": No such file or directory
rpc.idmapd: Could not find group "nobody"
Paul Eggleton [Wed, 28 Aug 2013 15:39:19 +0000 (16:39 +0100)]
busybox: set default log buffer size to 64 at compile time
This provides a more reasonable log buffer size to avoid losing earlier
events, and 64K is not a problem for modern systems. When the buffer is
used on sysvinit-based systems, which it isn't by default, 64K is already
the runtime default size unless /etc/syslog-startup.conf is modified or
deleted, so this only really affects systems using systemd. This
completely removes the need for the busybox bbappend in meta-oe.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Stefan Stanacar [Sun, 25 Aug 2013 00:46:55 +0000 (01:46 +0100)]
classes/testimage: add support for finding tests in other layers
A layer can add tests in lib/oeqa/runtime (provided it extends BBPATH as
normal) and enable them with TEST_SUITES_append = " testname". Test
module names shouldn't collide though.
Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com> Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Stefan Stanacar [Wed, 28 Aug 2013 10:52:09 +0000 (13:52 +0300)]
classes/testimage: increase default boot timeout
While I can't reproduce on local builds, sometimes images fail
to boot on AB (which runs many builds at once). Assuming
there isn't something weird going on, let's just give it more time.
Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Stefan Stanacar [Wed, 28 Aug 2013 09:56:45 +0000 (12:56 +0300)]
lib/oeqa/runtime: remove some unnecessary checks from setUpModule
These checks are unnecessary.
setUpModule is run when a module is loaded and we
shouldn't run commands on the target here, (plus if
ssh doesn't work we error out in setup multiple times, instead
of skipping the real test, which might depend on test_ssh).
Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Bruce Ashfield [Wed, 28 Aug 2013 20:12:19 +0000 (16:12 -0400)]
linux-yocto/3.10: fix ssh login and restore CC_OPTIMIZE_FOR_SIZE
Updating the BSP SRCREVs with the following changes:
7144bcc Revert "timer_list: Split timer_list_show_tickdevices" 1c0d1d8 Revert "timer_list: Convert timer list to be a proper seq_file"
To temporarily fix the ability to log in via ssh on some host/image combinations.
Updating the meta SRCREV for:
cd502a8 meta/standard: standard configuration fragment must be first
Which was incorrectly overriding feature and arch configuration values.
[YOCTO #5064]
[YOCTO #5062]
Signed-off-by: Tom Zanussi <tom.zanussi@intel.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Mihai Prica [Tue, 27 Aug 2013 14:12:05 +0000 (14:12 +0000)]
midori: add version 0.5.5 from meta-gnome
Midori is a lightweight web browser that uses the WebKit
rendering engine and the GTK interface. This allows a more
easy testing of the functionality of webkit-gtk component
that is already in oe-core.
Signed-off-by: Mihai Prica <mihai.prica@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Mihai Prica [Tue, 27 Aug 2013 14:14:13 +0000 (14:14 +0000)]
python-docutils: add version 0.11 from meta-oe
Docutils is a text processing system for processing plaintext
documentation into useful formats(HTML, XML, man-pages). This is
required by the Midori web-browser.
* Update 0.5 from meta-oe to 0.11.
Signed-off-by: Mihai Prica <mihai.prica@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Joe Slater [Mon, 26 Aug 2013 23:38:45 +0000 (23:38 +0000)]
dpkg: fix configuration issue for mips64
CQID: 431771
configure cannot determine the proper cpu, os, or
architecture for mips64, and possibly other arch's,
because of faulty code added to Arch.pm in the latest
release from upstream. We remove that code.
Signed-off-by: Joe Slater <jslater@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Khem Raj [Thu, 22 Aug 2013 02:16:30 +0000 (02:16 +0000)]
systemd: Upgrade to 206
Add new PACKAGE systemd-rpm-macros, this will hold
the macros which are interesting when rpm is used as
package management backend
Forward port uclibc only patches. Add a new patch
to stub out use of preadv/pwritev in testcases
Delete patches that have been merged upstream in systemd
Remove force export of GPERF variable in environment
this was causing AC_CHECK_TOOL to not populate GPERF
variable as expected
systemd needs kmod to be present on rootfs so add it
to RDEPENDS
some services substitute discovered kmod when the service
file is generated during boot, however the discovered kmod
is from native sysroot and it gets into the service file
with absolute path. So specify the target path of kmod using
KMOD variable so the unit files have correct pointer to kmod
on target
Add a patch to make sure that mknod capability is checked
before the service which excercise mknod, this patch is also
submitted to upstream systemd
Bruce Ashfield [Mon, 26 Aug 2013 21:47:20 +0000 (21:47 +0000)]
linux-yocto: add bc-native dependency, and move to linux-yocto.inc
As reported by Martin Jansa <martin.jansa@gmail.com>, the following error happens
when building in a minimal environment:
| BC kernel/timeconst.h
| /bin/sh: bc: command not found
| make[3]: *** [kernel/timeconst.h] Error 127
| make[2]: *** [kernel] Error 2
| make[2]: *** Waiting for unfinished jobs....
kernel commit 70730bca [kernel: Replace timeconst.pl with a bc script] added
a kernel dependency on bc. To support the build of linux-yocto recipes in
these configurations, we add bc-native to the common dependencies.
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Bruce Ashfield [Mon, 26 Aug 2013 17:28:29 +0000 (17:28 +0000)]
kern-tools: fix patch series to git tree validation
Previous changes to the kern-tools improved functionality to ensure that
as a series is considered, it is checked against the tree to confirm that
all patches are really applied.
There was a bug in the subject based detection, such that the first matching
patch was take, and not the last. This change ensures that we start from
the end of a series, not the start.
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
and returns a 0 exit code (it thinks it succesfully removed the package,
when in reality it didn't), so we need to catch those specifically.
Also, sometimes output from download command is:
Saving cache...http://192.168.7.1:49456/rpm/x86_64_x32/psplash-default-0.1+git0+afd4e228c6-r15.x86_64_x32.rpm
and that tricks our smart download test, so use a regex there.
Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com>
Chen Qi [Mon, 26 Aug 2013 06:43:55 +0000 (14:43 +0800)]
read-only-rootfs-hook.sh: check before bind mounting /var/lib
It's possible that /var/lib is on a separate writable partition. In such
situation, we should not bind mount /var/lib with tmpfs, becasue it's
already writable.
This patch fixes this problem by checking whether /var/lib is already
on a writable partition.
[YOCTO #4888]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Chen Qi [Mon, 26 Aug 2013 06:43:54 +0000 (14:43 +0800)]
checkroot.sh: check for conflicting configurations
In our current boot scripts, two ways are used to determine whether
the rootfs is read-only or not. One by checking the READ_ONLY_ROOTFS
value in /etc/default/rcS, the other by checking the /etc/fstab entry.
>From a normal Linux user's point of view, the way of checking the
/etc/fstab entry is preferred. However, as there are several boot scripts
that need to know whether rootfs is read-only or not, checking /etc/fstab
in each script brings too much overhead. Thus, these boot scripts
use the READ_ONLY_ROOTFS value in /etc/default/rcS.
In normal use cases, there would be no problem, as both /etc/default/rcS and
the /etc/fstab are modified at rootfs time. However, if the user changes
the mount option for rootfs in /etc/fstab to read-write, and he/she forgets
to change the value in /etc/default/rcS, there would be unexpected results.
For example, the udev-cache would still be disabled.
So at a minimal, a check for conflicting configurations between /etc/fstab
and /etc/default/rcS should be added in checkroot.sh so that there would be
reasonable warnings if users have configured the system in a non-consistent
way.
[YOCTO #4880]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
liangcao [Fri, 23 Aug 2013 21:40:35 +0000 (14:40 -0700)]
SPDX:real-time license scanning and SPDX output.
SPDX integrates real-time license scanning, generates
SPDX standard output and license verification
information during the OE-Core build process. The
existing module includes scanning patched packages
and creating package and file level SPDX documents.
Stefan Stanacar [Thu, 22 Aug 2013 13:25:52 +0000 (16:25 +0300)]
classess/testimage: change default test suites
Some new tests were added, safe to have them in the defaults
for sato-sdk and sato. Not all of the new tests are here though,
either because they aren't applicable to default images or take too long.
(like build iptables/cvs/sudoky ones, they can be enabled
in local.conf and a special target on AB setups.). Also reorder them a bit.
Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Robert Yang [Thu, 22 Aug 2013 07:54:44 +0000 (15:54 +0800)]
image_types.bbclass: replace genext2fs with populate-extfs.sh
* The benefits:
- Really support ext4
- Support the sparse file (we lost the sparse file in the image in the
past, the sparse file became into the common file)
- Fix the error reported by fsck: (ext2/ext3)
Inode 1025, i_size is 16384, should be 17408.
- Have a uniform code for ext2/3/4 generation
* Comments from Darren Hart:
Basically, genext2fs doesn't support creating ext4 filesystems. It
creates, as I understand it, an ext2 filesystem, then adds a journal,
and sets some bits. It can't support the newer features like extents. So
what we end up with is a bit of a hack for a filesystem.
The ext tools (e2fsprogs) unfortunately don't provide an integrated
solution for generating prepopulated filesystem images as many other
mkfs* tools do. One thing missing was symlink support in libext2fs. I
added that support and demonstrated a script which uses the e2fsprogs
debugfs tool that can populate the newly formatted filesystem from a
directory and without root privileges.
[YOCTO #3848]
Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Stefan Stanacar [Thu, 22 Aug 2013 12:02:55 +0000 (15:02 +0300)]
lib/oeqa: change behaviour for unskippable tests
When a test module wants to be skipped because it doesn't
apply to the image but it was nevertheless a required
test (one in TEST_SUITES), we issued an warning that it
was a required test and went on with running the module.
Usually all tests in the module failed (e.g gcc tests on a non-sdk image),
but this allowed us to know that something went wrong with the image
(some package/feature didn't make it).
However, instead of just issuing an warning and running the tests
it's better to throw an exception. The traceback will tell us what's wrong,
and we don't run every single test method.
Output will look like this:
--snip--
| NOTE: Test modules ['oeqa.runtime.ping', 'oeqa.runtime.ssh', 'oeqa.runtime.gcc']
| NOTE: Found 5 tests
| test_ping (oeqa.runtime.ping.PingTest) ... ok
| test_ssh (oeqa.runtime.ssh.SshTest) ... ok
| ERROR
|
| ======================================================================
| ERROR: setUpModule (oeqa.runtime.gcc)
| ----------------------------------------------------------------------
| Traceback (most recent call last):
| File "/mnt/back/yocto/poky/meta/lib/oeqa/runtime/gcc.py", line 8, in setUpModule
| skipModule("Image doesn't have tools-sdk in IMAGE_FEATURES")
| File "/mnt/back/yocto/poky/meta/lib/oeqa/oetest.py", line 108, in skipModule
| "\nor the image really doesn't have the requred feature/package when it should." % (modname, reason))
| Exception:
| Test gcc wants to be skipped.
| Reason is: Image doesn't have tools-sdk in IMAGE_FEATURES
| Test was required in TEST_SUITES, so either the condition for skipping is wrong
| or the image really doesn't have the requred feature/package when it should.
|
| ----------------------------------------------------------------------
| Ran 2 tests in 1.036s
|
| FAILED (errors=1)
| NOTE: Sending SIGTERM to runqemu
--snip--
Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Stefan Stanacar [Thu, 22 Aug 2013 11:47:21 +0000 (14:47 +0300)]
lib/oeqa: make it possible to restart the target
Tweak QemuRunner so we can actually restart the
qemu target in a test (if we want more memory for example).
Also add a restart method to the base test class so that tests
can use it.
Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Mihai Lindner [Mon, 19 Aug 2013 10:46:16 +0000 (13:46 +0300)]
lib/oeqa/utils: qemurunner: save host IP address
Save host IP address to host_ip.
Read /proc/PID/cmdline on host to look for IPs of target and host;
instead of running 'ps'.
Also removed some extra empty lines from file.
Signed-off-by: Mihai Lindner <mihaix.lindner@linux.intel.com> Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Stefan Stanacar [Tue, 20 Aug 2013 13:13:29 +0000 (16:13 +0300)]
lib/oeqa/runtime: rpm: add install and erase tests
Copies to target rpm-doc file from deploy_dir
and tries to install and then remove that package.
rpm-doc was chosen because it's small, it only adds
a few files to target, and it's almost always found in
deploy_dir for images with package-management/rpm.
Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Mihai Prica [Fri, 23 Aug 2013 12:57:00 +0000 (15:57 +0300)]
connman-gnome: fix DHCP segfault
In networks that don't have a DHCP server configured, ipv4 address
allocation fails and the ipv4 structure doesn't get populated.
The patch checks this case also.
[YOCTO #3945]
Signed-off-by: Mihai Prica <mihai.prica@intel.com> Signed-off-by: Emilia Ciobanu <emilia.maria.silvia.ciobanu at intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Paul Eggleton [Fri, 23 Aug 2013 11:20:30 +0000 (12:20 +0100)]
busybox: enable shared memory logging for systemd
The default command-line options for launching busybox's syslogd are
"-C" if using sysvinit; but because we use /etc/default/busybox-syslog
when using systemd which the sysvinit initscript doesn't use, and no
/etc/default/busybox-syslog is installed by default in OE-Core, the
default arguments with systemd were no arguments at all with OE-Core
alone. Effectively merge in the bbappend from meta-oe that adds a
default file in order to set the default options to "-C" for systemd as
well.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Robert Yang [Thu, 18 Jul 2013 09:52:16 +0000 (17:52 +0800)]
e2fsprogs: add populate-extfs.sh
This script is originally from Darren Hart, it will be used for creating
the ext* filesystem from a given directory, which will replace the
genext2fs in image_types.bbclass at the moment, we may use the mke2fs to
replace this script again when it has the initial directory support.
Changes of the script:
* Rename it from mkdebugfs.sh to populate-extfs.sh
* Add a simple usage
* Add checking for the number of the parameters
* Add the "regular empty file" and "fifo" file type
* Set mode, uid and gid for the file
* Save the command lines to a file and batch run them
* Change the error message
* Improve the performance
* Add the support for hardlink
[YOCTO #3848]
Signed-off-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Robert Yang [Thu, 22 Aug 2013 07:47:23 +0000 (15:47 +0800)]
e2fsprogs: properly set up extent header in do_write
do_write doesn't fully set up the first extent header on a new
inode, so if we write a 0-length file, and don't write any data
to the new file, we end up creating something that looks corrupt
to kernelspace:
EXT4-fs error (device loop0): ext4_ext_check_inode:464: inode #12: comm
ls: bad header/extent: invalid magic - magic 0, entries 0, max 0(0),
depth 0(0)
Do something similar to ext4_ext_tree_init() here, and
fill out the first extent header upon creation to avoid this.
[YOCTO #3848]
Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Robert Yang [Thu, 18 Jul 2013 09:50:50 +0000 (17:50 +0800)]
e2fsprogs: the max length of debugfs argument is too short
The max length of debugfs argument is 256 which is too short, the
arguments are two paths, the PATH_MAX is 4096 according to
/usr/include/linux/limits.h, so use BUFSIZ (which is 8192 on Linux
systems), that's also what the ss library uses.
This patch has been reviewed by the linux-ext4 mailing list, but isn't
merged atm.
[YOCTO #3848]
Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
- path normalization ('normalize' flag, defaults to enabled)
- existence verification for paths we know should exist ('mustexist' flag)
- supports clean handling of relative paths ('relativeto' flag)
Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Kai Kang [Thu, 22 Aug 2013 09:59:29 +0000 (17:59 +0800)]
alsa-lib: fix function definitions error for mips
Functions atomic_add(s) and atomic_sub(s) are defined with 'extern
__inline__' that may cause compile fails when cross compile for mips.
The error message looks like:
| pcm/.libs/libpcm.a(pcm_meter.o): In function
`snd_pcm_meter_update_scope':
| .../alsa-lib-1.0.27.2/src/pcm/pcm_meter.c:139: undefined reference to
`atomic_sub'
Replace the 'extern __inline__' with 'static __inline__' to fix this
issue.
Signed-off-by: Kai Kang <kai.kang@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Ross Burton [Thu, 22 Aug 2013 14:36:18 +0000 (15:36 +0100)]
runqemu-ifup: when tunctl can't be found, say what package builds it
If runqemu is used without actually building any qemu images (i.e. you
downloaded the images) it's likely that qemu-helper-native hasn't been built.
Instead of just saying what command can't be found, tell the user how to solve
their problem.
Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
Xufeng Zhang [Thu, 22 Aug 2013 03:12:28 +0000 (11:12 +0800)]
openssl: avoid NULL pointer dereference in three places
There are three potential NULL pointer dereference in
EVP_DigestInit_ex(), dh_pub_encode() and dsa_pub_encode()
functions.
Fix them by adding proper null pointer check.