MCPcopy Create free account
hub / github.com/RsyncProject/rsync / driver3

Function driver3

popt/lookup3.c:858–928  ·  view source on GitHub ↗

Check for reading beyond the end of the buffer and alignment problems */

Source from the content-addressed store, hash-verified

856
857/* Check for reading beyond the end of the buffer and alignment problems */
858static void driver3(void)
859{
860 uint8_t buf[MAXLEN+20], *b;
861 uint32_t len;
862 uint8_t q[] = "This is the time for all good men to come to the aid of their country...";
863 uint32_t h;
864 uint8_t qq[] = "xThis is the time for all good men to come to the aid of their country...";
865 uint32_t i;
866 uint8_t qqq[] = "xxThis is the time for all good men to come to the aid of their country...";
867 uint32_t j;
868 uint8_t qqqq[] = "xxxThis is the time for all good men to come to the aid of their country...";
869 uint32_t ref,x,y;
870 uint8_t *p;
871 uint32_t m = 13;
872
873 printf("Endianness. These lines should all be the same (for values filled in):\n");
874 printf("%.8x %.8x %.8x\n",
875 jlu32w(m, (const uint32_t *)q, (sizeof(q)-1)/4),
876 jlu32w(m, (const uint32_t *)q, (sizeof(q)-5)/4),
877 jlu32w(m, (const uint32_t *)q, (sizeof(q)-9)/4));
878 p = q;
879 printf("%.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x\n",
880 jlu32l(m, p, sizeof(q)-1), jlu32l(m, p, sizeof(q)-2),
881 jlu32l(m, p, sizeof(q)-3), jlu32l(m, p, sizeof(q)-4),
882 jlu32l(m, p, sizeof(q)-5), jlu32l(m, p, sizeof(q)-6),
883 jlu32l(m, p, sizeof(q)-7), jlu32l(m, p, sizeof(q)-8),
884 jlu32l(m, p, sizeof(q)-9), jlu32l(m, p, sizeof(q)-10),
885 jlu32l(m, p, sizeof(q)-11), jlu32l(m, p, sizeof(q)-12));
886 p = &qq[1];
887 printf("%.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x\n",
888 jlu32l(m, p, sizeof(q)-1), jlu32l(m, p, sizeof(q)-2),
889 jlu32l(m, p, sizeof(q)-3), jlu32l(m, p, sizeof(q)-4),
890 jlu32l(m, p, sizeof(q)-5), jlu32l(m, p, sizeof(q)-6),
891 jlu32l(m, p, sizeof(q)-7), jlu32l(m, p, sizeof(q)-8),
892 jlu32l(m, p, sizeof(q)-9), jlu32l(m, p, sizeof(q)-10),
893 jlu32l(m, p, sizeof(q)-11), jlu32l(m, p, sizeof(q)-12));
894 p = &qqq[2];
895 printf("%.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x\n",
896 jlu32l(m, p, sizeof(q)-1), jlu32l(m, p, sizeof(q)-2),
897 jlu32l(m, p, sizeof(q)-3), jlu32l(m, p, sizeof(q)-4),
898 jlu32l(m, p, sizeof(q)-5), jlu32l(m, p, sizeof(q)-6),
899 jlu32l(m, p, sizeof(q)-7), jlu32l(m, p, sizeof(q)-8),
900 jlu32l(m, p, sizeof(q)-9), jlu32l(m, p, sizeof(q)-10),
901 jlu32l(m, p, sizeof(q)-11), jlu32l(m, p, sizeof(q)-12));
902 p = &qqqq[3];
903 printf("%.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x\n",
904 jlu32l(m, p, sizeof(q)-1), jlu32l(m, p, sizeof(q)-2),
905 jlu32l(m, p, sizeof(q)-3), jlu32l(m, p, sizeof(q)-4),
906 jlu32l(m, p, sizeof(q)-5), jlu32l(m, p, sizeof(q)-6),
907 jlu32l(m, p, sizeof(q)-7), jlu32l(m, p, sizeof(q)-8),
908 jlu32l(m, p, sizeof(q)-9), jlu32l(m, p, sizeof(q)-10),
909 jlu32l(m, p, sizeof(q)-11), jlu32l(m, p, sizeof(q)-12));
910 printf("\n");
911 for (h=0, b=buf+1; h<8; ++h, ++b) {
912 for (i=0; i<MAXLEN; ++i) {
913 len = i;
914 for (j=0; j<i; ++j)
915 *(b+j)=0;

Callers 1

mainFunction · 0.85

Calls 2

jlu32wFunction · 0.85
jlu32lFunction · 0.85

Tested by

no test coverage detected