2007-02-10 02:14:51

by Brian Behlendorf

[permalink] [raw]
Subject: e2fsprogs coverity patch <cid-8.diff>

Lawrence Livermore National Labs recently ran the source code
analysis tool Coverity over the e2fsprogs-1.39 source to see
if it would identify any significant bugs. The analysis
turned up 38 mostly minor issues which are enumerated here
with patches. We went through and resolved these issues
but would love to see these mostly minor changes reviewed
and commited upstream.

Thanks,
Brian Behlendorf <[email protected]>, and
Herb Wartens <[email protected]>

-----------------------------------------------------------------------------
Coverity ID: 8: Forward Null

Looks like flawed reasoning. Here if infor_DIR is NULL then you are guaranteed
to blow up since you will dereference it. It seems like the correct thing to
do here (what the code author meant to do) was to set *code_ptr =
SS_ET_NO_INFO_DIR if info_dir was NULL or if *info_dir was an empty string (aka
*info_dir == '\0').

Index: e2fsprogs+chaos/lib/ss/help.c
===================================================================
--- e2fsprogs+chaos.orig/lib/ss/help.c
+++ e2fsprogs+chaos/lib/ss/help.c
@@ -134,7 +134,7 @@ void ss_add_info_dir(sci_idx, info_dir,
register char **dirs;

info = ss_info(sci_idx);
- if (info_dir == NULL && *info_dir) {
+ if (info_dir == NULL || *info_dir == '\0') {
*code_ptr = SS_ET_NO_INFO_DIR;
return;
}