s/qmail
4.3.20
Next generation secure email transport
Loading...
Searching...
No Matches
4.3
sqmail-4.3.20
src
auto-uid.c
Go to the documentation of this file.
1
#include <unistd.h>
2
#include <sys/types.h>
3
#include <pwd.h>
4
#include "buffer.h"
5
#include "
exit.h
"
6
#include "scan.h"
7
#include "fmt.h"
8
9
char
inbuf
[BUFFER_SMALL];
10
buffer
b
= BUFFER_INIT(
write
,1,
inbuf
,
sizeof
(
inbuf
));
11
12
void
outs
(
char
*s)
/* was named puts, but Solaris pwd.h includes stdio.h. dorks. */
13
{
14
if
(buffer_puts(&
b
,s) == -1)
_exit
(111);
15
}
16
17
int
main
(
int
argc,
char
*
const
*argv)
18
{
19
char
*name;
20
char
*value;
21
struct
passwd *
pw
;
22
char
strnum
[FMT_ULONG];
23
24
name = argv[1];
25
if
(!name)
_exit
(100);
26
value = argv[2];
27
if
(!value)
_exit
(100);
28
29
pw
= getpwnam(value);
30
if
(!
pw
) {
31
buffer_puts(buffer_2,
"fatal: unable to find user "
);
32
buffer_puts(buffer_2,value);
33
buffer_puts(buffer_2,
"\n"
);
34
buffer_flush(buffer_2);
35
_exit
(111);
36
}
37
38
strnum
[fmt_ulong(
strnum
,(
unsigned
long
)
pw
->pw_uid)] = 0;
39
40
outs
(
"int "
);
41
outs
(name);
42
outs
(
" = "
);
43
outs
(
strnum
);
44
outs
(
";\n"
);
45
if
(buffer_flush(&
b
) == -1)
_exit
(111);
46
_exit
(0);
47
}
b
buffer b
Definition:
auto-uid.c:10
inbuf
char inbuf[BUFFER_SMALL]
Definition:
auto-uid.c:9
outs
void outs(char *s)
Definition:
auto-uid.c:12
main
int main()
Definition:
chkshsgr.c:6
exit.h
_exit
void _exit(int)
pw
struct passwd * pw
Definition:
qmail-getpw.c:19
strnum
char strnum[FMT_ULONG]
Definition:
qmail-inject.c:505
write
void write()
Generated on Thu Jan 16 2025 17:42:03 for s/qmail by
1.9.6