save checkpoint: save features
This commit is contained in:
@@ -5,10 +5,10 @@
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
using System.Diagnostics;
|
||||
using System.Text;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Options;
|
||||
using StellaOps.BinaryIndex.Builders;
|
||||
using StellaOps.BinaryIndex.Persistence.Repositories;
|
||||
|
||||
namespace StellaOps.BinaryIndex.Worker.Jobs;
|
||||
|
||||
@@ -153,7 +153,7 @@ public sealed class ReproducibleBuildJob : IReproducibleBuildJob
|
||||
Options = new BuildOptions
|
||||
{
|
||||
Timeout = _options.BuildTimeout,
|
||||
CacheIntermediates = true
|
||||
KeepBuildArtifacts = true
|
||||
}
|
||||
};
|
||||
|
||||
@@ -194,7 +194,7 @@ public sealed class ReproducibleBuildJob : IReproducibleBuildJob
|
||||
|
||||
private async Task CreateClaimsAsync(
|
||||
CveAttribution cve,
|
||||
PatchDiffResult diff,
|
||||
FunctionDiffResult diff,
|
||||
BuildResult vulnerableBuild,
|
||||
BuildResult patchedBuild,
|
||||
CancellationToken ct)
|
||||
@@ -212,7 +212,7 @@ public sealed class ReproducibleBuildJob : IReproducibleBuildJob
|
||||
var claim = new FingerprintClaim
|
||||
{
|
||||
Id = Guid.NewGuid(),
|
||||
FingerprintId = Guid.Parse(binary.BuildId), // Assuming BuildId is GUID-like
|
||||
FingerprintId = ToDeterministicGuid(binary.BuildId),
|
||||
CveId = cve.CveId,
|
||||
Verdict = ClaimVerdict.Fixed,
|
||||
Evidence = new FingerprintClaimEvidence
|
||||
@@ -237,7 +237,7 @@ public sealed class ReproducibleBuildJob : IReproducibleBuildJob
|
||||
var claim = new FingerprintClaim
|
||||
{
|
||||
Id = Guid.NewGuid(),
|
||||
FingerprintId = Guid.Parse(binary.BuildId),
|
||||
FingerprintId = ToDeterministicGuid(binary.BuildId),
|
||||
CveId = cve.CveId,
|
||||
Verdict = ClaimVerdict.Vulnerable,
|
||||
Evidence = new FingerprintClaimEvidence
|
||||
@@ -261,6 +261,19 @@ public sealed class ReproducibleBuildJob : IReproducibleBuildJob
|
||||
"Created {Count} fingerprint claims for CVE {CveId}",
|
||||
claims.Count, cve.CveId);
|
||||
}
|
||||
|
||||
private static Guid ToDeterministicGuid(string buildId)
|
||||
{
|
||||
if (Guid.TryParse(buildId, out var parsed))
|
||||
{
|
||||
return parsed;
|
||||
}
|
||||
|
||||
var hash = System.Security.Cryptography.SHA256.HashData(Encoding.UTF8.GetBytes(buildId));
|
||||
Span<byte> guidBytes = stackalloc byte[16];
|
||||
hash.AsSpan(0, 16).CopyTo(guidBytes);
|
||||
return new Guid(guidBytes);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user