On Thursday, 28 July 2022 at 17:46:49 UTC, frame wrote:
On Thursday, 28 July 2022 at 16:45:55 UTC, pascal111 wrote:
Aha! "In theory, someone could inject bad code", you admit my
theory.
The code would need to work and pass merge tests too. The merge
reason must match in review. If someone fixes a task and
additionally adds 100 LOC some should, will ask what this is
about.
It's a extrem unlikely scenario. You may heard of linux kernel
source that contains code that no one exactly knows about. But
this some kind of bait. It's old code, reviewed years ago, not
needed anymore but not knowing to be harmful. Completely
different.
Anyway, code old or new may be harmful if it allows UB
(undefined behaviour) and that is what hackers primarily use,
not secret backdoors. This is why it's important to write
CORRECT software that doesn't allow and cannot fall in a state
of UB.
I agree with you in some points.
I retyped again some function of C library I made before, but
with D code:
module dcollect;
import std.stdio;
import std.conv;
import std.ascii;
/****************************************/
string strleft(const string ch, int n)
{
string ch_sub;
ch_sub=ch[0..n];
return ch_sub;
}
/************************************/
string strreverse(const string ch)
{
string ch_rev;
for(int i=to!int(ch.length-1); i>=0; i--)
ch_rev~=ch[i];
return ch_rev;
}
/*********************************************/
string strright(const string ch, int n)
{
string ch_sub1,
ch_sub2;
ch_sub1=strreverse(ch);
ch_sub2=strleft(ch_sub1, n);
ch_sub1=strreverse(ch_sub2);
return ch_sub1;
}
/*********************************************/
string strmid(const string ch, int x, int l)
{
string ch_sub;
ch_sub=ch[x..(x+l)];
return ch_sub;
}
/*********************************************/
string strtolower(const string ch)
{
string ch_cpy;
for(int i=0; i<ch.length; i++)
ch_cpy~=toLower(ch[i]);
return ch_cpy;
}
/*********************************************/
string strtoupper(const string ch)
{
string ch_cpy;
for(int i=0; i<ch.length; i++)
ch_cpy~=toUpper(ch[i]);
return ch_cpy;
}