Question: Discriminant of a third degree polynomial has three integer solutions

The function f := x -> (x + 1)*(x^2 + (m - 5)*x - 7*m + 2) satifies
solve(discrim(f(x), x) = 0, m) has three solutions 1, -17, -1
How to find the integer numbers a, b, c, d, k, t so that the function 
f := x -> x^3 + (a*m + b)*x^2 + (c*m + d)*x + k*m+t  satifies the equation 

solve(discrim(f(x), x) = 0, m)  has three  integer numbers m?

Consider the function f:=x-> a*x^2 + b*m*x + x^3 + c*m.
I tried
restart;
f := x -> x^3 + a*x^2 + b*m*x + c*m;
solve(f(x) = 0, m);
g := x -> -x^2*(a + x)/(b*x + c);
solve(diff(g(x), x) = 0, x);

restart;
n := 0;
f := x -> -x^2*(a + x)/(b*x + c);
for a from -10 to 20 do
    for b to 20 do
for c from -10 to 20 do
mydelta := a^2*b^2 - 10*a*b*c + 9*c^2;
if 0 < mydelta and type(mydelta, integer) then
x1 := (-b*a - 3*c + sqrt(a^2*b^2 - 10*a*b*c + 9*c^2))/(4*b):
x2 := -(b*a + sqrt(a^2*b^2 - 10*a*b*c + 9*c^2) + 3*c)/(4*b):
x3 := 0:
if type(x1, integer) and type(x2, integer) and nops({0, x1, x2}) = 3 and type(f(x1), integer) and type(f(x2), integer) then n := n + 1; L[n] := [a, b, c]; end if; end if; end do; end do; end do;
L := convert(L, list);


I get
L := [[-10, 1, 6], [-10, 2, 12], [-9, 3, 5], [-8, 1, 10], [-5, 1, 3], [-4, 1, -6], [4, 1, 6], [5, 1, -3], [6, 3, 20], [7, 1, 15], [8, 1, -10], [8, 1, 12], [9, 3, -5], [10, 1, -6], [10, 1, 12], [12, 1, 18], [14, 1, -4], [15, 1, -9], [18, 1, 20], [18, 3, -10], [18, 3, 4], [20, 1, 2]]

With L[1], solve(discrim(x^3 - 10*x^2 + m*x + 6*m, x) = 0, m) ;
The equation has three integer solutions: 0, 12, -500

Please Wait...