FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
redis/utils/corrupt_rdb.c at unstable · williamjava/redis · GitHub
williamjava
/
redis
Public
forked from
redis/redis
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
redis
/
utils
/
corrupt_rdb.c
Copy path
More file actions
More file actions
Latest commit
History
History
History
44 lines (38 loc) · 1.04 KB
Breadcrumbs
redis
/
utils
/
corrupt_rdb.c
Copy path
File metadata and controls
44 lines (38 loc) · 1.04 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/* Trivia program to corrupt an RDB file in order to check the RDB check
* program behavior and effectiveness.
*
* Copyright (C) 2016 Salvatore Sanfilippo.
* This software is released in the 3-clause BSD license. */
#include
<stdio.h>
#include
<fcntl.h>
#include
<sys/stat.h>
#include
<stdlib.h>
#include
<unistd.h>
#include
<time.h>
int
main
(
int
argc
,
char
*
*
argv
) {
struct
stat
stat
;
int
fd
,
cycles
;
if
(
argc
!=
3
) {
fprintf
(
stderr
,
"Usage: <filename> <cycles>\n"
);
exit
(
1
);
}
srand
(
time
(
NULL
));
cycles
=
atoi
(
argv
[
2
]);
fd
=
open
(
"dump.rdb"
,
O_RDWR
);
if
(
fd
==
-1
) {
perror
(
"open"
);
exit
(
1
);
}
fstat
(
fd
,
&
stat
);
while
(
cycles
--
) {
unsigned
char
buf
[
32
];
unsigned long
offset
=
rand
()%
stat
.
st_size
;
int
writelen
=
1
+
rand
()%
31
;
int
j
;
for
(
j
=
0
;
j
<
writelen
;
j
++
)
buf
[
j
]
=
(
char
)
rand
();
lseek
(
fd
,
offset
,
SEEK_SET
);
printf
(
"Writing %d bytes at offset %lu\n"
,
writelen
,
offset
);
write
(
fd
,
buf
,
writelen
);
}
return
0
;
}
Back
|
FazBrowse Home
|
New Git URL