Avoiding to print a wrong PID on the status bar.

Patch by Kamil Dudka.  Bug reported by Don Swaner.


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5110 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
This commit is contained in:
Benno Schulenberg 2015-02-01 09:58:02 +00:00
parent 67cdd5ee1e
commit 057ef182cd
2 changed files with 4 additions and 1 deletions

View File

@ -3,6 +3,9 @@
the lock file -- a simple null_at() would not initialize the buffer.
* src/files.c (do_lockfile): Make sure that 'lockprog' and 'lockuser'
are terminated -- strncpy() does not guarantee that on its own.
* src/files.c (do_lockfile): Avoid printing a wrong PID on the status
bar due to treating serialized PID bytes as signed integers. This
addresses https://bugzilla.redhat.com/1186384 reported by Don Swaner.
2015-02-01 Benno Schulenberg <bensberg@justemail.net>
* src/winio.c (do_credits): Add a general entry for all translators.

View File

@ -284,7 +284,7 @@ int do_lockfile(const char *filename)
return -1;
}
strncpy(lockprog, &lockbuf[2], 10);
lockpid = lockbuf[25] * 256 + lockbuf[24];
lockpid = (unsigned char)lockbuf[25] * 256 + (unsigned char)lockbuf[24];
strncpy(lockuser, &lockbuf[28], 16);
#ifdef DEBUG
fprintf(stderr, "lockpid = %d\n", lockpid);