aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/easydir.c3
-rw-r--r--src/implementation.c13
-rw-r--r--src/implementation.h2
-rw-r--r--src/main.c9
-rw-r--r--src/r-x11.c2
-rw-r--r--src/xstd.c28
-rw-r--r--src/xstd.h3
7 files changed, 14 insertions, 46 deletions
diff --git a/src/easydir.c b/src/easydir.c
index cf10110..acf1104 100644
--- a/src/easydir.c
+++ b/src/easydir.c
@@ -19,13 +19,10 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include <unistd.h>
-#include <sys/wait.h>
#include <errno.h>
#include <dirent.h>
#include "easydir.h"
-#include "xstd.h"
int file_exist(const char *path)
{
diff --git a/src/implementation.c b/src/implementation.c
index af9f79d..5fcd17e 100644
--- a/src/implementation.c
+++ b/src/implementation.c
@@ -28,7 +28,6 @@
#include "implementation.h"
#include "constants.h"
-#include "xstd.h"
#include "easydir.h"
#include "r-gpgme.h"
#if defined(DISPLAY)
@@ -174,19 +173,19 @@ char *get_input(int minlen, int maxlen)
return pass;
}
-void gen_password(char *dest, int amount)
+char *gen_password(int length)
{
int i, min = 33, max = 126;
- char password[amount];
+ char *password = malloc(sizeof(char) * (length + 1));
srand(time(NULL));
- for(i = 0; i < amount; i++)
+ for(i = 0; i < length; i++)
password[i] = min + rand() % (max-min);
- strcpy(dest, password);
+ return password;
}
-static void clearStdinBuff()
+static void clear_stdin()
{
int garbage;
while( (garbage = fgetc(stdin)) != '\n' && garbage != EOF )
@@ -199,7 +198,7 @@ int overwrite_answer(const char *path)
printf("Password for \"%s\" exists. Overwrite? (Y/N)\n", path);
while((answer = fgetc(stdin)))
{
- clearStdinBuff();
+ clear_stdin();
switch(answer)
{
case 'Y':
diff --git a/src/implementation.h b/src/implementation.h
index dc905ef..467da6f 100644
--- a/src/implementation.h
+++ b/src/implementation.h
@@ -28,7 +28,7 @@ char *get_password(const char *path);
void visible_enter(int status);
int insert_pass(const char *path, const char *password);
char *get_input(int minlen, int maxlen);
-void gen_password(char *dest, int amount);
+char *gen_password(int length);
int overwrite_answer(const char *path);
#endif \ No newline at end of file
diff --git a/src/main.c b/src/main.c
index 4b19e82..1b33323 100644
--- a/src/main.c
+++ b/src/main.c
@@ -290,18 +290,21 @@ int cmd_generate(int argc, char *argv[])
errprint(1, "You can't generate password for directory\n");
// generate password
- char g_pass[pass_length];
- gen_password(g_pass, pass_length);
+ char *g_pass;
+ g_pass = gen_password(pass_length);
result = insert_pass(path, g_pass);
- if(result)
+ if(result) {
+ free(g_pass);
errprint(1, "Can't add password to LockPassword");
+ }
if(flag_copy)
copy_outside(g_pass);
else
printf("Generated password: %s\n", g_pass);
printf("Password added successfully for %s\n", path);
+ free(g_pass);
return 0;
}
diff --git a/src/r-x11.c b/src/r-x11.c
index 3a4b240..b42c852 100644
--- a/src/r-x11.c
+++ b/src/r-x11.c
@@ -50,7 +50,7 @@ static void send_data(Display *dpy, XSelectionRequestEvent *sev,
if(target == X_utf8) {
an = XGetAtomName(dpy, sev->property);
if(an) {
- dbgprint("Sending data, property '%s'\n", sev->requestor, an);
+ dbgprint("Sending data, property '%s'\n", an);
XFree(an);
}
diff --git a/src/xstd.c b/src/xstd.c
index db82c75..f791ab2 100644
--- a/src/xstd.c
+++ b/src/xstd.c
@@ -16,36 +16,8 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
***/
-#include <stdio.h>
#include <stdlib.h>
-#include <unistd.h>
#include <string.h>
-#include <sys/wait.h>
-
-void callError(int num)
-{
- fprintf(stderr, "lpass: Sorry, there was an error in the program [#%d]\n", num);
- exit(3);
-}
-
-void printError(const char *text)
-{
- fprintf(stderr, "%s", text);
- exit(4);
-}
-
-void easyFork(char *name, char *arguments[])
-{
- int pid;
- pid = fork();
- if(pid == -1) callError(100);
- if(pid == 0) { /* new process */
- execvp(name, arguments);
- perror(name);
- exit(4);
- }
- wait(&pid);
-}
char *xstrcat(const char *first, const char *second,
const char *delimiter)
diff --git a/src/xstd.h b/src/xstd.h
index 0511433..351069d 100644
--- a/src/xstd.h
+++ b/src/xstd.h
@@ -19,9 +19,6 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
***/
-void easyFork(char *name, char *arguments[]);
-void callError(int num);
-void printError(const char *text);
char *xstrcat(const char *first, const char *second,
const char *delimiter);