From a4f76ab2d9b18bccc3c1d11638c94d73b747ef17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AB=8F=E8=A8=AA=E5=AD=90?= Date: Thu, 1 Feb 2024 16:50:03 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=91=E3=82=B9=E3=83=AF=E3=83=BC=E3=83=89?= =?UTF-8?q?=E5=89=8A=E9=99=A4=E6=A9=9F=E8=83=BD=E6=80=A7=E3=81=A7=E3=80=81?= =?UTF-8?q?=E3=83=91=E3=82=B9=E3=83=AF=E3=83=BC=E3=83=89=E3=81=8C=E5=AD=98?= =?UTF-8?q?=E5=9C=A8=E3=81=AA=E3=81=84=E3=81=8B=E3=81=A9=E3=81=86=E3=81=8B?= =?UTF-8?q?=E7=A2=BA=E8=AA=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + delpass.c | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index aa40873..ebde866 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ * makeを実行したら、バイナリがもっと小さくなる * パスワードの長さの延長 * パスワード追加機能性で、パスワードが既に存在するかどうか確認 +* パスワード削除機能性で、パスワードが存在ないかどうか確認 # 1.1.2 * OpenBSDでのコンパイラーが発生された問題を修正した diff --git a/delpass.c b/delpass.c index 73e5509..2b9717b 100644 --- a/delpass.c +++ b/delpass.c @@ -15,6 +15,23 @@ int delpass(char* file) { char* basedir = "/.local/share/sp/"; char* ext = ".gpg"; + + int alllen = snprintf(NULL, 0, "%s%s%s%s", homedir, basedir, file, ext) + 1; + char* gpgpathchk = malloc(alllen); + if (gpgpathchk == NULL) { + perror("メモリを割当に失敗。"); + return -1; + } + + // ファイルが既に存在するかどうか確認 + snprintf(gpgpathchk, alllen, "%s%s%s%s", homedir, basedir, file, ext); + if (access(gpgpathchk, F_OK) != 0) { + fprintf(stderr, "パスワードが存在しません。\n"); + free(gpgpathchk); + return -1; + } + free(gpgpathchk); + int needed = snprintf(pwfile, sizeof(pwfile), "%s%s%s%s", homedir, basedir, file, ext); if (needed >= (int)sizeof(pwfile)) { fprintf(stderr, "エラー:パスが長すぎる。\n");