diff -u -r --exclude=CVS gnokii-cvs/utils/mgnokiidev.c gnokii-devel/utils/mgnokiidev.c --- gnokii-cvs/utils/mgnokiidev.c 2003-09-04 00:04:48.000000000 +0200 +++ gnokii-devel/utils/mgnokiidev.c 2003-10-13 21:15:40.000000000 +0200 @@ -112,7 +112,7 @@ master = open("/dev/ptmx", O_RDWR | O_NOCTTY | O_NONBLOCK); if (master >= 0) { if (!grantpt(master) || !unlockpt(master)) { - *name = ptsname(master); + *name = strdup(ptsname(master)); } else { return(-1); } @@ -134,7 +134,6 @@ if ((master = open(*name, O_RDWR | O_NOCTTY | O_NONBLOCK )) < 0) { if (errno == ENOENT) { /* we are out of pty devices */ - free(*name); return (master); } } @@ -142,7 +141,6 @@ } if ((master < 0) && (i == 16) && (j == 16)) { /* must have tried every pty unsuccessfully */ - free(*name); return (master); } @@ -177,6 +175,7 @@ if (PtyRDFD < 0 || name == NULL) { fprintf (stderr, _("Couldn't open pty!\n")); + perror("mgnokiidev - GetMasterPty"); goto error; } @@ -187,13 +186,13 @@ /* Change group of slave pty to group of mgnokiidev */ if (chown(name, -1, getgid()) < 0) { - perror("mgnokiidev - chown: "); + perror("mgnokiidev - chown"); goto error; } /* Change permissions to rw by group */ if (chmod(name, S_IRGRP | S_IWGRP | S_IRUSR | S_IWUSR) < 0) { - perror("mgnokiidev - chmod: "); + perror("mgnokiidev - chmod"); goto error; } @@ -208,12 +207,13 @@ /* Create symlink */ if (symlink(name, "/dev/gnokii") < 0) { - perror("mgnokiidev - symlink: "); + perror("mgnokiidev - symlink"); goto error; } /* Now pass the descriptor to the caller */ if ((n = gwrite(atoi(argv[1]), "", 1, PtyRDFD)) < 0) { + perror("mgnokiidev - gwrite"); goto error; }