mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-17 10:26:15 +00:00
pw: Handle errors from ftell() when removing records from /etc/opiekeys.
Reported by: Coverity MFC after: 1 week Sponsored by: NetApp, Inc. Sponsored by: Klara, Inc.
This commit is contained in:
parent
7a82cf511d
commit
645c2851e2
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=365046
@ -712,24 +712,24 @@ rmopie(char const * name)
|
||||
{
|
||||
char tmp[1014];
|
||||
FILE *fp;
|
||||
int fd;
|
||||
size_t len;
|
||||
off_t atofs = 0;
|
||||
|
||||
long atofs;
|
||||
int fd;
|
||||
|
||||
if ((fd = openat(conf.rootfd, "etc/opiekeys", O_RDWR)) == -1)
|
||||
return;
|
||||
|
||||
fp = fdopen(fd, "r+");
|
||||
len = strlen(name);
|
||||
|
||||
while (fgets(tmp, sizeof(tmp), fp) != NULL) {
|
||||
for (atofs = 0; fgets(tmp, sizeof(tmp), fp) != NULL && atofs >= 0;
|
||||
atofs = ftell(fp)) {
|
||||
if (strncmp(name, tmp, len) == 0 && tmp[len]==' ') {
|
||||
/* Comment username out */
|
||||
if (fseek(fp, atofs, SEEK_SET) == 0)
|
||||
fwrite("#", 1, 1, fp);
|
||||
break;
|
||||
}
|
||||
atofs = ftell(fp);
|
||||
}
|
||||
/*
|
||||
* If we got an error of any sort, don't update!
|
||||
|
Loading…
Reference in New Issue
Block a user