Safeguard for noexec

We may have users that run into problems with our current
payload model, so this gives us an escape valve.
This commit is contained in:
Daniel Hiltgen
2024-03-28 14:26:17 -07:00
parent 10ed1b6292
commit 0a74cb31d5
2 changed files with 19 additions and 3 deletions

View File

@@ -22,11 +22,20 @@ var (
func PayloadsDir() (string, error) {
lock.Lock()
defer lock.Unlock()
var err error
if payloadsDir == "" {
cleanupTmpDirs()
tmpDir, err := os.MkdirTemp("", "ollama")
if err != nil {
return "", fmt.Errorf("failed to generate tmp dir: %w", err)
tmpDir := os.Getenv("OLLAMA_TMPDIR")
if tmpDir == "" {
tmpDir, err = os.MkdirTemp("", "ollama")
if err != nil {
return "", fmt.Errorf("failed to generate tmp dir: %w", err)
}
} else {
err = os.MkdirAll(tmpDir, 0755)
if err != nil {
return "", fmt.Errorf("failed to generate tmp dir %s: %w", tmpDir, err)
}
}
// Track our pid so we can clean up orphaned tmpdirs