https://support.google.com/googleplay/android-developer/answ...
which is then subject to Google reviewing and approving it.
I assume HSBC are using the "antivirus" use case.
106 karma · joined March 2, 2011
https://support.google.com/googleplay/android-developer/answ...
which is then subject to Google reviewing and approving it.
I assume HSBC are using the "antivirus" use case.
This is rather bad considering the importance of ICMPv6 in IPv6 (for Path MTU Discovery, for example).
Their support is being rather useless, despite us having to pay for the privilege of reporting a bug in their own infrastructure to them!
I assume other countries have similar laws.
That said, enforcing it is a different matter.
Go runes are codepoints.
I think Swift is interesting, a "character" in Swift is actually a grapheme cluster.
You can fit picorv32 on an iCE40-HX8K, although admittedly you'll only get an RV32IMC core with just the user ISA.
Each subnet gets 2^64 addresses. You can have multiple devices in the same subnet.
> A server MAY consider a client authorized for a wildcard domain if it is authorized for the underlying domain name (without the “*” label).
Although this seems to be gone from https://ietf-wg-acme.github.io/acme/, which I think is the later version.
> The CA MUST establish and follow a documented procedure that determines if the wildcard character occurs in the first label position to the left of a "registry-controlled" label or "public suffix" (e.g. "* .com", "* .co.uk", see RFC 6454 Section 8.2 for further explanation).
This basically means that the CA should check the Public Suffix List before they issue a wildcard.
As a 'just in case' measure, most modern browsers also reject certs where the wildcard is directly below something on the PSL.
(sorry for the spaces after the asterisks, HN seemed to like converting big chunks of the post to italics)
GRUB does this for you. See this thread from a few years ago: https://news.ycombinator.com/item?id=7590790
grub-core/loader/multiboot_elfxx.c has a function named grub_multiboot_load_elf32/64 which actually loads the segments of the ELF file. A segment has two fields defining its size: filesz (which is the amount of bytes to copy from the file) and memsz (which is its actual size once loaded). If memsz is greater than filesz, it zeroes the trailing bytes:
if (phdr(i)->p_filesz < phdr(i)->p_memsz)
grub_memset ((grub_uint8_t *) source + phdr(i)->p_filesz, 0,
phdr(i)->p_memsz - phdr(i)->p_filesz);
The .bss section is placed by the linker at the end of a segment and increases memsz by the size of it (but not filesz, to avoid having to place lots of pointless zeroes in the ELF file) - for example this is one of the segments from my kernel's ELF file, which contains the .bss section at the end: LOAD off 0x0000000000020000 vaddr 0xffffffff8011f000 paddr 0x000000000011f000 align 2**12
filesz 0x0000000000004be0 memsz 0x0000000000017678 flags rw-
Here you can see memsz is 0x17678 bytes and filesz is smaller at 0x4be0 bytes. The difference between them is the size of the .bss section.grub_multiboot_load_elf32/64 is called in the case when the address tag is not present, so the .bss section will be cleared by GRUB in this case as well.
- Disabling interrupts and paging (which also has the side effect of flushing the TLB) to copy memory around by physical address. This could be done without disabling them by mapping all of physical memory into virtual memory instead (possible in 64-bit mode, but in 32-bit there isn't enough room when your PC has a similar amount of RAM to virtual memory space, in which case you could map smaller parts of it as needed).
- Moving the stack around to get around the fact that GRUB doesn't set ESP to some well-defined value (instead of defining the stack yourself, which would be much more robust) and then attempting to rewrite the base pointers to fix it. For example, his code can't tell the difference between integers that just happen to have a value in the range of the pointers and a pointer, and will happily rewrite both. Also as ESP isn't defined by the Multiboot standard you could be using any location at all as the stack (such as some memory address that doesn't exist, or your kernel's code itself, or some memory-mapped area for a piece of hardware, etc.) All of which will mean things go wrong. It's better to just set ESP yourself before you enter C - see another of my comments on this submission here [3].
There's actually a newer and much better version of JamesM's tutorials on GitHub, but I believe they aren't quite finished [2].
[1]: http://wiki.osdev.org/James_Molloy%27s_Known_Bugs [2]: https://github.com/jmolloy/JMTK [3]: https://news.ycombinator.com/item?id=7590753
The Multiboot standard says that the boot loader will clear the .bss section for you - in section 3.1.3: "bss_end_addr Contains the physical address of the end of the bss segment. The boot loader initializes this area to zero"
I don't know what GRUB does if you rely on that fact it can parse ELF files and don't specify the fields like bss_end_addr though. I'm fairly sure it clears it in this case too, but I'm using Multiboot 2 for my OS so the behaviour could be different.
An easy way to solve this is to reserve some bytes in the .bss section of the executable for the stack by adding a new section in the assembly file:
[section .bss align=16]
resb 8192
stack_end:
Then before you make use of the stack (between `cli` and `call kmain` would be appropriate in this case), you need to set the stack pointer: mov esp, stack_end
[1]: https://www.gnu.org/software/grub/manual/multiboot/multiboot...You can use the kpartx command for this. This site has a good overview: http://nfolamp.wordpress.com/2010/08/16/mounting-raw-image-f...
Linode have been around since 2003. I think Slicehost was founded later than this (in 2006 according to a quick search for their name.)