Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: PATCH: Plug some fd leaks in bin_print



I have some doubts about some of this.  In fact I suspect that these are
mostly false-positives because the option letters tested in the if()
conditions preceding each of these goto's are (or should be) mutually
exclusive.

On Jan 7,  1:25am, Mikael Magnusson wrote:
}
}  	    if (*eptr) {
} -		zwarnnam(name, "number expcted after -%c: %s", 'C', argptr);
} -		return 1;
} +		zwarnnam(name, "number expected after -%c: %s", 'C', argptr);
} +		ret = 1;
} +		goto out_print;
}  	    }
}  	    if (nc <= 0) {
}  		zwarnnam(name, "invalid number of columns: %s", argptr);
} -		return 1;
} +		ret = 1;
} +		goto out_print;
}  	    }

I'm not sure what coverity had to say here, but these can't be right.  The
descriptor should NOT be fflush()d on this error.

}  	    queue_signals();
}  	    zpushnode(bufstack, sepjoin(args, NULL, 0));
}  	    unqueue_signals();
} -	    return 0;
} +	    goto out_print;

This can't be right either; there shouldn't be any output when pushing on
the buffer stack, so again we shouldn't be fflush()ing.


}  			zwarnnam(name, "option -S takes a single argument");
} -			return 1;
} +			ret = 1;
} +			goto out_print;

Same complaint.

}      if (OPT_ISSET(ops,'z') || OPT_ISSET(ops,'s')) {
} +	if (fout != stdout)
} +	    fclose(fout);
} +	fout = stdout;

Why is that needed when the very next couple of lines are going to over-
write fout with a different open?

I'm just going to quit complaining about the rest of these; I think
they're all incorrect.  If nothing else, they shouldn't introduce the
possibility of printing BOTH an argument-parsing error AND a write-
failed error.

This needs to be looked at more closely.

-- 
Barton E. Schaefer



Messages sorted by: Reverse Date, Date, Thread, Author